2012-10-17 5 views
36

Je suis tombé sur deux caractères étranges à la fin d'une commande git ls-remote et je me demande ce que cela signifie?Que signifie^{} dans git?

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

Savez-vous ce que cela signifie^{}? Aussi, pourquoi ce tag git semble-t-il dupliqué?

Répondre

32

La notation ^{} est expliqué dans le manuel gitrevisions:

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

Un suffixe^suivie d'une paire d'entretoise vide signifie que l'objet peut être une balise, et déréférencer le tag récursive jusqu'à ce qu'un non-tag l'objet est trouvé.

Dans votre cas 0e4c39557ccb6789173c est l'objet de la balise et 966f8df553f18c486820 est l'objet (commit) qu'il déréférence finalement.

Depuis le git show-ref manuel:

-d 
--dereference 

balises déréférencement dans ID d'objet ainsi. Ils seront affichés avec "^ {}" ajouté.

+5

Une explication plus complète peut être trouvée dans cette question en double: http://stackoverflow.com/a/15472310/83284 – pedromanoel

3

Notez que git ls-remote a un nouveau filtre avec git 2.8 (mars 2016).

Voir commit 99c08d4, commit ba5f28b, commit 80b17e5, commit 40a8852, commit 54813bd (18 janvier 2016) par Thomas Gummerer (tgummerer).
Suggestion: pedro rijo (pedrorijo91).
(Fusionné par Junio C Hamano -- gitster -- en commit bd6934a 03 Feb 2016)

Cela signifie que vous pouvez afficher uniquement les balises avec

git ls-remote --refs 

Ne pas afficher les étiquettes pelés ou pseudorefs comme la tête dans la sortie.