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

为什么git show ref--hash--HEAD显示的sha1与HEAD不同?,git,version-control,Git,Version Control,我将改用git rev parse,但我很好奇为什么下面的命令会给我一个不同于预期的提交ID 我想在我正在写的一些脚本中把sha1从头上拉下来。我在玩show ref和rev parse。让我好奇的是,在头部使用show ref显示出与实际头部完全不同的sha1。使用git rev parse没有这个问题。考虑以下事项: > git show-ref --hash -- HEAD 40f3fb3d84b7c9857cadb581b901e3cc20ed1f24 > git rev-p

我将改用git rev parse,但我很好奇为什么下面的命令会给我一个不同于预期的提交ID

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

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

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

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