带^ {}的Git分支/标签名称

时间:2013-10-21 19:57:04

标签: git

运行命令git ls-remote会列出以下条目:

e6c1ddea6ee8eefa9e96e349dd4fad4a48c16448    refs/tags/1.1
1a3b5ae3a50ca2f24e5cd917cbf51d371f1dd01e    refs/tags/1.1^{}
81901877c5add523cd4a4bb8f51ad3bbbacbd686    refs/tags/1.2
4681b1ae6ec71301019da13d1790c2f808c2c553    refs/tags/1.2^{}

^{}在输出中意味着什么?

1 个答案:

答案 0 :(得分:5)

它们不是名称的一部分,而是git rev-parse的一个指示符,它应该取消引用标记(并且,运气好的话,找到提交,尽管理论上标记可以指向另一个标记,或者甚至是树或blob;但如果它指向另一个标签,^{}会继续剥离洋葱层,直到它碰到非标签。)

git ls-remote(实际上,远程本身)使用此语法向您发送commit-ID。 (我不太确定如果标签最终指向树或blob会发生什么。)