我已经看过:
git fetch
; gitk --all
" git push --tags
ssh username@host "cd my/repo/path && git show"
" git rev-parse --verify origin/master
将显示本地原始/主文件副本的SHA,以及git ls-remote origin master
以从远程数据库获取SHA。" git log remotename/branchname
- 您无法直接连接到服务器以检查日志,您所做的是使用{{1下载服务器的状态然后在本地查看远程分支的日志。" 由此判断,对于我想要做的事情,我必须通过git fetch
登录并在远程服务器上运行脚本;但我希望有更多的git集成解决方案,所以让我解释一下我想做什么。
我有一个远程仓库,它是git-svn;然后我有一个本地git-only repo,它是遥控器的克隆。因此,本地引用了ssh
中的远程网址(通过remote.origin.url
看到)。
我想要做的是,在遥控器上运行相当于git config --list
(可能有一些后处理),但是从本地机器/ repo启动调用 - 并在本地机器/ repo上再次获得结果。当然,git svn log
甚至可能不会安装在本地计算机上,这意味着只有远程才能理解这样的命令。
我已经准备好为远程仓库编写一个钩子 - 但据我所知,钩子只能在指定的事件上运行(即git-svn
,pull
...... ) - 你无法真正地任意称呼它们:我记得,一旦我开发了一个update
脚本;并且为了调试它,我不得不将其设置为始终返回错误,然后我推送"推送" a"假的" commit,它会运行脚本,并在接收到错误后回滚repo - 当然,这不是我想象的远程脚本应该运行的方式。
可能的另一件事是为本地仓库编写一个别名,然后根据post-update
调用SSH - 这可能会使remote.origin.url
远程运行更容易一些?
最后,这是我的问题 - 在远程控制器上运行相对自定义的git svn log
命令(如git
或远程定义的git svn log
别名)有哪些选项? repo,通过最大程度地利用本地repo 中已有的数据(也就是说,我想避免编写git
脚本,重复的硬编码路径/ URL,将调用{{1}并且在远程执行任何必要的操作 - 可能,类似于远程bash
ssh
挂钩将其stdout返回给本地调用者,前缀为" remote :"?
答案 0 :(得分:2)
这里的答案似乎基本上是:
ssh server 'cd /path/to/repo && git svn log'
您可以编写一些代码来从server
获取/path/to/repo
和git remote
(假设您的遥控器是ssh
类型的遥控器)。除了在本地git仓库中很容易找到的信息之外,不需要其他上下文信息。