2

我将改用 git rev-parse ,但我很好奇为什么以下命令给我的提交 ID 与我预期的不同。

我想在我正在编写的一些脚本中从 HEAD 中提取 sha1。为此,我正在玩 show-ref 和 rev-parse 。令我好奇的是,在 HEAD 上使用 show-ref 显示的 sha1 与 HEAD 上的实际情况完全不同。使用 git rev-parse 没有这个问题。考虑以下:

> git show-ref --hash -- HEAD
40f3fb3d84b7c9857cadb581b901e3cc20ed1f24
> git rev-parse HEAD
a54b2714e6052ba063ea45924610e2cf0b6e5750

似乎上述两个语句应该返回相同的提交 ID。为什么有区别?

4

1 回答 1

1

因此,事实证明,实际上有人将一个名为 HEAD 的删除分支推送到了远程,并且是我在执行 show-ref 时获取另一个提交 ID 的地方。当仔细查看 show-ref 时,它实际上要求一个模式并且匹配 origin/HEAD。

于 2013-06-26T04:15:56.907 回答