2013-06-26 49 views
2

我打算使用git rev-parse來代替,但我很好奇爲什麼下面的命令給了我一個不同於我的期望的提交ID。爲什麼git show-ref --hash - HEAD顯示與HEAD不同的sha1?

我想在我正在寫的一些腳本中從頭部拉sha1。我正在爲此展示show-ref和rev-parse。對我而言,好奇的是,在HEAD上使用show-ref與在HEAD中實際顯示的完全不同。使用git rev-parse沒有這個問題。考慮以下內容:

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

看起來上面的兩個語句應該返回相同的提交ID。爲什麼有差別?

回答

1

所以,事實證明,有人實際上推送了一個名爲HEAD的移除分支到遠程,並且是我在做show-ref時獲取其他提交ID的地方。當仔細觀察show-ref時,它實際上要求一個模式,並且匹配origin/HEAD。