如何使用类似 curl 的命令获取远程存储库的最后一个提交 ID



我想获取远程 git 存储库的最后一个提交 ID。

该命令git rev-parse HEAD适用于本地克隆的 git 存储库,但我想通过 CURL 命令左右从原始 GIT 存储库中获取它。

例如:我想获取 git URL https://git.appfactorypreview.wso2.com/history/apiapp.git/的最后一个提交 ID。

如何?

试试这个命令

git log --format="%H" -n 1

另一种方式,不使用 git 日志:

git rev-parse HEAD

我想你想要的是这个:

git ls-remote $URL HEAD

如果远程仓库中不存在HEAD,则可能需要:

git ls-remote $URL refs/heads/master

请注意,首先,HEAD将指向要在存储库中签出的默认分支。 您需要确保这是您想要的分支,或者只使用第二种形式并指定您想要的分支(将refs/heads/master替换为您想要的分支的名称:refs/heads/BRANCH_NAME

您可以使用

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

最后一个提交 id 的短哈希值更易于阅读(阅读:用户友好)。对于后代,有两种方法可以获取最后一个提交 id 的短哈希:

git rev-parse --short HEAD

用于获取短哈希,例如。 fb8a7de

git log -n1 --format="%h"

用于获取完整的哈希值,例如。 fb8a7decf471abc61dc6e49616697d3bd722b96f

git log -n1 --format="%H"

您可以在此处找到有关漂亮格式的更多信息 https://git-scm.com/docs/pretty-formats

我使用的最简单方法:

git rev-parse origin/develop

我的回答对 OP 没有帮助,因为他不在 github 上,但我想无论如何我都会提到它,因为它使用 curlwget ,正如 OP 要求的那样。

wget -qO- http://api.github.com/repos/Ghini/ghini.desktop/commits/ghini-1.0

Ghini是我的存储库,ghini.desktop是我的存储库,ghini-1.0是我感兴趣的分支。更换它们以适合您的情况。

JSON 答案是一个字典,OP 对其sha字段感兴趣,但它包含更多信息。

git fetch; git rev-parse origin/branch_name

为了安全起见,请先运行git fetch

相关内容

  • 没有找到相关文章

最新更新