GIT结帐标记指向错误的sha1

时间:2013-11-27 04:16:15

标签: git

我有一个存储库HELPER,并在其上创建了大约350个标签。 我在“主”分支上,想要以只读方式签出标签。

当我结帐时,它表示它指向某个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

我不想创建一个新的分支,我对分离的HEAD很好,因为我使用这个repo作为只读的repo。

目前在git版本1.8.0-rc0

1 个答案:

答案 0 :(得分: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指向a单独的git对象。

(轻量级标签直接指向提交,并在--deref下保持不变。)