有谁知道如何从 git存储库外部获取给定分支的最新SHA ?
如果您在git存储库中,则可以执行以下操作:
git log origin/branch_X | head -1
但是,我不在git存储库中,我想避免使用clone
存储库来获取标记/分支的最新SHA.这样做有一个聪明的方法吗?
使用rev-parse
git rev-parse origin/master # to get the latest commit on the remote git rev-parse HEAD # to get the latest commit on the local
如果要检查远程存储库中给定分支的SHA-1,那么您的答案是正确的:
$ git ls-remote
但是,如果您使用相同的文件系统,则更简单的解决方案(不需要从输出中提取SHA-1)将简单地:
$ git --git-dir=/path/to/repo/.git rev-parse origin/branch_X
有关' '选项的说明,请参阅git(1)联机帮助页--git-dir
.
我的一位同事为我回答了这个问题:
git ls-remote ssh://git.dev.pages/opt/git/repos/dev.git
史蒂夫
使用git URL:
$ git ls-remote| head -1 | sed "s/HEAD//"
使用可访问系统上的目录:
$ git --git-dir=/path/to/repo/.git rev-parse origin/
这应该可以解决问题 git ls-remote REMOTE | awk "/BRANCH/ {print \$1}"
将REMOTE替换为远程存储库的名称,将BRANCH替换为分支的名称.
如上面的评论所述,这应该是最好的解决方案:
$ git ls-remote