在远程运行git命令?

sda*_*aau 6 git git-remote

我已经看到了:

由此判断,对于我想要做的事情,我必须登录ssh并在远程服务器上运行脚本; 但我希望有更多的git集成解决方案,所以让我解释一下我想做什么.

我有一个远程仓库,它是git-svn; 然后我有一个本地git-only repo,它是遥控器的克隆.因此,本地有一个对远程URL的引用remote.origin.url(见过git config --list).

我想要做的是git svn log,在遥控器上运行相当于(可能有一些后处理),但是从本地机器/ repo 启动调用- 并再次在本地机器/ repo上获得结果.当然,git-svn甚至可能没有安装在本地机器上,这意味着只有遥控器才能理解这样的命令.

我会准备好远程代码回购钩-但据我所看到的,挂钩只能在指定的事件(即运行pull,update...) -你真的不能随意叫他们:我记得,有一次我开发post-update脚本; 并且为了调试它,我不得不将它设置为总是返回一个错误,然后我"推"一个"假"提交,这将运行脚本,并在收到错误后,回滚repo - 当然,这不是我想象的远程脚本应该运行的方式.

另一件可能的事情是为本地仓库编写一个别名,然后调用SSH remote.origin.url- 也许这会使git svn log远程运行更容易一些?

最后,这是我的问题-做什么选择我要运行一个相对的自定义git命令(如git svn log,或git别名远程定义)上的远程回购,利用尽可能最大程度地在当地的回购已经获得的数据(即是的,我想避免编写一个bash脚本,使用重复的硬编码路径/ URL,它将调用ssh并执行遥控器上的任何必要操作) - 可能类似于远程post-update git钩子将其stdout返回给本地调用者,前缀为"远程:"?

Gre*_*ill 2

这里的答案似乎本质上是:

ssh server 'cd /path/to/repo && git svn log'
Run Code Online (Sandbox Code Playgroud)

您可以编写一些代码来获取server/path/to/repo接收git remote(假设您的遥控器是ssh遥控器类型)。除了可以在本地 git 存储库中轻松找到的内容之外,不需要其他上下文信息。