git中的^ {}是什么意思?
我偶然发现了一个git ls-remote命令结尾的两个奇怪的字符,我想知道这是什么意思?
0e4c39557ccb6789173c refs/tags/2011-11-04 966f8df553f18c486820 refs/tags/2011-11-04^{}
你碰巧知道这个^ {}是什么意思? 另外,为什么这个git标签似乎重复?
gitrevisions
手册中解释了^{}
符号:
<rev>^{}, eg v0.99.8^{}
后缀^后跟一个空括号对意味着该对象可能是一个标签,并recursion引用标签,直到find一个非标签对象。
在你的情况下, 0e4c39557ccb6789173c
是标记对象, 966f8df553f18c486820
是它最终解除引用的对象(提交)。
从git show-ref
手册:
-d --dereference
将标签解引用到对象ID中。 它们将以附加的“^ {}”显示。
请注意, git ls-remote
有git 2.8(2016年3月)的新filter。
参见提交99c08d4 , 提交ba5f28b , 提交80b17e5 , 提交40a8852 , 提交54813bd (2016年1月18日)通过Thomas Gummerer( tgummerer
) 。
build议: pedro rijo( pedrorijo91
) 。
(由Junio C gitster
合并- gitster
– in commit bd6934a ,2016年2月3日)
这意味着你可以只显示标签
git ls-remote --refs
不要在输出中显示剥皮的标签或像HEAD这样的伪码。