2013-11-27 60 views
0

我有一個存儲庫HELPER,並在其上創建了大約350個標記。 我在'master'分支上,想要爲只讀目的簽出標籤。GIT結帳標記指向錯誤sha1

當我結帳時,它說它指向某個sha1 id,而不是該標籤的sha1。

這裏是片段,

bash-4.1$ git checkout **HELPER_F62.3.REL** 

HEAD is now at **7e04dfb**... *HELPER_OS4.1.35* 

bash-4.1$ git show-ref **HELPER_F62.3.REL** 

**d722076d24ec9d13d845094181f47801ca77b4ca** refs/tags/HELPER_F62.3.REL 

bash-4.1$ git show-ref HELPER_OS4.1.35 

2782a48d2044b0fc0aa60ecf2823967a2312e1dd refs/tags/HELPER_OS4.1.35 

我不希望創建一個新的分支,和我很好的分離的頭,因爲我用這個作爲回購只讀回購。

目前在Git版本1.8.0-rc0

+0

你有相同名稱的一個分支?過去我曾幾次看到過這個問題,這是標籤名稱和分支名稱之間的名稱衝突。你可以發佈'git ls-remote .'的輸出嗎? – jszakmeister

回答

2

我懷疑你有一個註釋標籤。當您使用git checkout來分離HEAD並獲取相應的提交時,您會看到提交ID而不是註釋的標記ID。

你可以看到這一點,例如,git show-ref --deref

$ git show-ref --deref master annotag 
a430f6d91b98d382b8d96f6812fc2056a6e6f678 refs/heads/master 
20e14672ee2253d38c1001179d8f17688d47059c refs/tags/annotag 
a430f6d91b98d382b8d96f6812fc2056a6e6f678 refs/tags/annotag^{} 

表明分支master(我標記git tag -a annotag創建註釋標籤)就是annotag解決一次解引用,即使annotag點到一個單獨的git對象。

(輕量級標籤直接指向提交,--deref下保持不變。)

+0

回購中的所有標籤都是輕量級的。注意到在這個回購中,當我做'git log'時只有5次提交。 從窗口執行'gitk',它顯示所有的標籤都連接到這5個提交。不知道這是怎麼發生的。 此外,我仍然對git如何顯示不同的sha1標識感到困惑。 – Raviraj

+0

好的,這是令人費解的。關於'git log --graph --decorate --oneline --all',你有什麼更明智的嗎? – torek