我想获取远程git仓库的最后提交ID 。
该命令git rev-parse HEAD
适用于本地克隆的git repo,但是我想通过CURL命令从原始GIT repo中获取它。
例如:我要获取git URL的最后提交ID https://git.appfactorypreview.wso2.com/history/apiapp.git/。
怎么样?
我想获取远程git仓库的最后提交ID 。
该命令git rev-parse HEAD
适用于本地克隆的git repo,但是我想通过CURL命令从原始GIT repo中获取它。
例如:我要获取git URL的最后提交ID https://git.appfactorypreview.wso2.com/history/apiapp.git/。
怎么样?
Answers:
我认为您想要的是:
git ls-remote $URL HEAD
如果HEAD
远程存储库中不存在,则您可能需要:
git ls-remote $URL refs/heads/master
请注意,在第一个实例中,HEAD
将指向默认分支以在存储库中检出。您需要确保这是您想要的分支,或者只使用第二种形式并指定您想要的一种(用refs/heads/master
您想要的分支的名称替换:)refs/heads/BRANCH_NAME
。
HEAD
,因为它是当前分支的指针。但是在裸仓库中不存在HEAD
。
git ls-remote git://github.com/jszakmeister/vimfiles.git HEAD
。在裸仓库中,它告诉Git将哪个分支作为默认分支签出。的确,您不能指望它的存在。因此,在这种情况下,您应该使用适当的refname。我将更新我的答案。
我使用的最简单方法:
git rev-parse origin/develop
我的回答对OP没有帮助,因为他不在github上,但是我想我还是会提到它,因为它按OP的要求使用curl
或wget
。
wget -qO- http://api.github.com/repos/Ghini/ghini.desktop/commits/ghini-1.0
Ghini
是我的ghini.desktop
仓库,是我的存储库,ghini-1.0
是我感兴趣的分支。请替换它们以适合您的情况。
JSON答案是一个字典,OP对它的sha
领域很感兴趣,但是它包含很多信息。
git log --format="%H" -n 1