99 votes

Comment savoir si une balise git donnée est annotée ou légère?

Je tape git tag et il liste mes tags actuels:

 1.2.3
1.2.4
 

Comment puis-je déterminer lequel de ceux-ci est annoté et lequel est léger?

78voto

jthill Points 10384

git for-each-ref vous indique quelle est chaque référence, son identifiant et son type. Pour le limiter aux balises, faites git for-each-ref refs/tags .

49voto

G. Sylvie Davies Points 363

L' git show-ref -d --tags commande de tri de fait, depuis léger balises de se produire une fois dans la sortie, et annoté les balises d'en avoir deux. Aussi, seulement annoté balises inclure le "^{}" opérateur de déréférencement dans la sortie.

588e9261795ec6dda4bd0a881cf1a86848e3d975 refs/tags/1.2.3
7fe2caaed1b02bb6dae0305c5c0f2592e7080a7a refs/tags/1.2.4
588e9261795ec6dda4bd0a881cf1a86848e3d975 refs/tags/1.2.4^{}

Et que la sortie peut être massé avec de l'unix de tri, sed, cut, et uniq commandes pour rendre la sortie plus lisible:

git show-ref -d --tags       | 
cut -b 42-                   | # to remove the commit-id
sort                         |
sed 's/\^{}//'               | # remove ^{} markings
uniq -c                      | # count identical lines
sed 's/2\ refs\/tags\// a /' | # 2 identicals = annotated
sed 's/1\ refs\/tags\//lw /'   

Pour mon premier dépôt (à partir de ma question), il renvoie ceci:

  lw 1.2.3
   a 1.2.4

(par exemple, 1.2.3 était "léger" et "1.2.4" a été annoté).

34voto

Noufal Ibrahim Points 32200

Obtenez le nom de la balise (disons foo ) puis faites un git cat-file -t foo . S'il s'agit d'une balise annotée, cat-file vous dira qu'il s'agit d'une "balise". S'il s'agit d'une simple balise, cat-file vous dira qu'il s'agit d'un "commit".

Mise à jour: Comme oxymoron l’a dit dans son commentaire, git show fonctionne également, mais il vous donne davantage d’informations que le type de balise correspondant.

15voto

Oxymoron Points 576

S'il vous plaît essayez d'utiliser git describe

https://git-scm.com/docs/git-describe

Par défaut (sans --all ni --tags), git describe affiche uniquement les balises annotées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X