为什么git show-ref --hash - HEAD显示与HEAD不同的sha1?

时间:2013-06-26 04:15:57

标签: git version-control

我将使用git rev-parse代替,但我很好奇为什么以下命令给我一个不同于我预期的提交ID。

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

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

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

1 个答案:

答案 0 :(得分:1)

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