2012-10-17 24 views
36

Natknąłem się na dwie dziwne postacie na końcu polecenia git ls-remote i zastanawiam się, co to oznacza?Co oznacza^{} w git?

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

Czy wiesz, co to znaczy^{}? Dlaczego ten tag git wydaje się zduplikowany?

Odpowiedz

32

Zapis ^{} opisano w instrukcji gitrevisions:

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

sufiks^następnie przez pustą pary usztywniającego oznacza, że ​​obiekt może być znacznikiem i nieprawidłowego znacznika rekurencyjnie, aż do braku znacznika obiekt został znaleziony.

W twoim przypadku 0e4c39557ccb6789173c jest przedmiotem tag i 966f8df553f18c486820 jest przedmiotem (commit), że ostatecznie dereferences do.

z podręcznika git show-ref:

-d 
--dereference 

Dereferencjuje język znaczników identyfikatory obiektów, jak również. Zostaną wyświetlone z dołączonym "^ {}".

+5

Pełniejsze wyjaśnienie można znaleźć w tym duplikacie pytanie: http://stackoverflow.com/a/15472310/83284 – pedromanoel