我想获取远程 git repo 的最后一个提交ID .
该命令git rev-parse HEAD
适用于本地克隆的git repo,但我希望通过CURL命令从原始的GIT repo中获取它.
例如:我想获取git URL的最后一个提交ID https://git.appfactorypreview.wso2.com/history/apiapp.git/.
怎么样?
Lit*_*mus 84
试试这个命令
git log --format="%H" -n 1
Run Code Online (Sandbox Code Playgroud)
Joh*_*ter 30
我想你想要的是这个:
git ls-remote $URL HEAD
Run Code Online (Sandbox Code Playgroud)
如果HEAD
远程存储库中不存在,那么您可能需要:
git ls-remote $URL refs/heads/master
Run Code Online (Sandbox Code Playgroud)
请注意,在第一个实例中,HEAD
将指向要在存储库中签出的默认分支.你需要确定你想要的分支,或者只是使用第二个表单并指定你想要的refs/heads/master
那个(用你想要的分支名称替换:refs/heads/BRANCH_NAME
.
sil*_*vio 13
你可以用git ls-remote
它.因为我得到一个'Unauthorized access for repository apiapp.git'
我用例如torvalds linux-repo.
$ git ls-remote --heads git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
6d15ee492809d38bd62237b6d0f6a81d4dd12d15 refs/heads/master
Run Code Online (Sandbox Code Playgroud)
最后一个提交 id 的短散列更易于人类阅读(阅读:用户友好)。对于后代,有两种方法可以获取最后一次提交 ID 的短哈希值:
git rev-parse --short HEAD
Run Code Online (Sandbox Code Playgroud)
或者
git log -n1 --format="%h"
Run Code Online (Sandbox Code Playgroud)
我的回答对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
,但它包含更多信息。