2012-10-17 42 views
36

我偶然发现了git ls-remote命令末尾的两个奇怪字符,我想知道这意味着什么?^{}在git中意味着什么?

0e4c39557ccb6789173c refs/tags/2011-11-04 
966f8df553f18c486820 refs/tags/2011-11-04^{} 

你碰巧知道这^ ^是什么意思?此外,为什么这个git标签似乎重复?

回答

32

^{}符号在gitrevisions手册说明:

<rev>^{}, e.g. v0.99.8^{} 

后缀^后跟一个空的一对括号表示对象可以是标签,并且取消引用标签递归直至非标签对象被找到。

对于您的情况,0e4c39557ccb6789173c是标记对象,966f8df553f18c486820是它最终解除引用的对象(提交)。

git show-ref手册:

-d 
--dereference 

解除引用标记插入对象ID为好。它们将以附加的“^ {}”显示。

+5

在这个重复问题中可以找到更完整的解释:http://stackoverflow.com/a/15472310/83284 – pedromanoel