web-dev-qa-db-fra.com

Comment lister toutes les balises avec le message complet dans git?

Je veux que git liste toutes les balises avec l'annotation complète ou le message de validation. Quelque chose comme ça est proche:

git tag -n5

Cela fait exactement ce que je veux sauf que cela n’apparaît qu’aux 5 premières lignes du message de la balise.

Je suppose que je peux juste utiliser un très grand nombre. Quel est le nombre le plus élevé que je puisse utiliser ici? Est-ce la même chose sur chaque ordinateur?

UPDATE: J'ai eu beaucoup de temps pour réfléchir à cela, et maintenant je pense que je ne veux pas nécessairement montrer le message entier s'il est extraordinairement long. Quelque chose comme cela semble bien fonctionner pour moi:

git tag -n99

Si le message de balise dépasse en réalité 99 lignes, je ne veux pas tout voir. Mais Git est extrêmement complexe et flexible. Dans quels cas cela ne serait-il pas la meilleure solution? J'ai remarqué que de nombreuses solutions publiées utilisaient la -l otion, mais n'est-ce pas simplement pour spécifier un motif à rechercher?

313
still_dreaming_1
git tag -n99

Court et doux. Ceci listera jusqu'à 99 lignes du message d'annotation/commit. Voici un lien vers la documentation officielle de la balise git: http://git-scm.com/docs/git-tag

94
still_dreaming_1

Essayez ceci, il listera toutes les balises avec des annotations et 9 lignes de message pour chaque balise:

git tag -n9

peut également utiliser

git tag -l -n9

si des balises spécifiques doivent être listées:

git tag -l -n9 v3.*

(par exemple, la commande ci-dessus n'affichera que les balises commençant par "v3.")

-l, --list Liste les balises avec des noms correspondant au modèle donné (ou toutes si aucun modèle n’est donné). L'exécution de "balise git" sans argument répertorie également toutes les balises. Le modèle est un caractère générique de Shell (c'est-à-dire, correspondant à l'aide de fnmatch (3)). Plusieurs modèles peuvent être donnés; si l'un d'entre eux correspond, la balise est affichée.

305
Zubair

La réponse de Mark Longair (en utilisant git show) est proche de ce que l'on souhaite dans la question. Cependant, il inclut également le commit indiqué par la balise, ainsi que le correctif complet pour ce commit. Étant donné que la validation peut ne pas être liée à la balise (la tentative de capture de la balise est une validation seulement), cela peut être indésirable. Je pense que ce qui suit est un peu plus agréable:

for t in `git tag -l`; do git cat-file -p `git rev-parse $t`; done
25
Paul Price

C'est loin d'être joli, mais vous pouvez créer un script ou un alias qui fait quelque chose comme ça:

for c in $(git for-each-ref refs/tags/ --format='%(refname)'); do echo $c; git show --quiet "$c"; echo; done
12
Mark Longair

Dernier message tag uniquement:

git cat-file -p $(git rev-parse $(git tag -l | tail -n1)) | tail -n +6
10
gaRex

Je préfère le faire en ligne de commande, mais si une interface Web ne vous dérange pas et que vous utilisez GitHub, vous pouvez visiter https://github.com/user/repo/tags et cliquer sur le "..." à côté de chaque balise pour afficher son annotation.

2
agouge