有谁知道如何从 git存储库外部获取给定分支的最新SHA ?
如果您在git存储库中,则可以执行以下操作:
git log origin/branch_X | head -1
Run Code Online (Sandbox Code Playgroud)
但是,我不在git存储库中,我想避免使用clone存储库来获取标记/分支的最新SHA.这样做有一个聪明的方法吗?
gpr*_*ant 90
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
Run Code Online (Sandbox Code Playgroud)
Jak*_*ski 64
如果要检查远程存储库中给定分支的SHA-1,那么您的答案是正确的:
$ git ls-remote <URL>
Run Code Online (Sandbox Code Playgroud)
但是,如果您使用相同的文件系统,则更简单的解决方案(不需要从输出中提取SHA-1)将简单地:
$ git --git-dir=/path/to/repo/.git rev-parse origin/branch_X
Run Code Online (Sandbox Code Playgroud)
有关' '选项的说明,请参阅git(1)联机帮助页--git-dir.
Adv*_*ser 28
我的一位同事为我回答了这个问题:
git ls-remote ssh://git.dev.pages/opt/git/repos/dev.git <branch>
Run Code Online (Sandbox Code Playgroud)
史蒂夫
dch*_*m4n 17
使用git URL:
$ git ls-remote <URL> | head -1 | sed "s/HEAD//"
Run Code Online (Sandbox Code Playgroud)
使用可访问系统上的目录:
$ git --git-dir=/path/to/repo/.git rev-parse origin/<targeted-banch>
Run Code Online (Sandbox Code Playgroud)
ant*_*tam 14
这应该可以解决问题 git ls-remote REMOTE | awk "/BRANCH/ {print \$1}"
将REMOTE替换为远程存储库的名称,将BRANCH替换为分支的名称.