当前位置:  开发笔记 > 运维 > 正文

如何从远程git存储库获取最新提交的SHA?

如何解决《如何从远程git存储库获取最新提交的SHA?》经验,为你挑选了6个好方法。

有谁知道如何 git存储库外部获取给定分支的最新SHA ?

如果您在git存储库中,则可以执行以下操作:

git log origin/branch_X | head -1

但是,我不在git存储库中,我想避免使用clone存储库来获取标记/分支的最新SHA.这样做有一个聪明的方法吗?



1> gprasant..:

使用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 


我认为如果您的本地仓库是最新的,git rev-parse origin/master只返回正确的答案.要证明这一点,请断开互联网并尝试; 命令会成功.相反,git ls-remote将失败,因为它试图联系远程仓库.
问题说明"我想避免为了获得标签/分支的最新SHA而克隆存储库".是否可以对您没有本地信息的存储库使用`git rev-parse`?

2> Jakub Narębs..:

如果要检查远程存储库中给定分支的SHA-1,那么您的答案是正确的:

$ git ls-remote 

但是,如果您使用相同的文件系统,则更简单的解决方案(不需要从输出中提取SHA-1)将简单地:

$ git --git-dir=/path/to/repo/.git rev-parse origin/branch_X

有关' '选项的说明,请参阅git(1)联机帮助页--git-dir.



3> AdvilUser..:

我的一位同事为我回答了这个问题:

git ls-remote ssh://git.dev.pages/opt/git/repos/dev.git 

史蒂夫


谢谢。这应该升级为该问题的答案。

4> dch4pm4n..:

使用git URL:

$ git ls-remote  | head -1 | sed "s/HEAD//"

使用可访问系统上的目录:

$ git --git-dir=/path/to/repo/.git rev-parse origin/



5> antonagestam..:

这应该可以解决问题 git ls-remote REMOTE | awk "/BRANCH/ {print \$1}"

将REMOTE替换为远程存储库的名称,将BRANCH替换为分支的名称.



6> 小智..:

如上面的评论所述,这应该是最好的解决方案:

$ git ls-remote | head -1 | cut -f 1

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有