我有一个存储库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
答案 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
下保持不变。)