commande git pour afficher toutes les dates de création des balises (légères)

186

Y a-t-il une seule ligne qui me montre les dates de création de toutes les balises git light?

Quelque chose comme git show tags --format=date:?

Dror Cohen
la source
1
@jleedev: Je cherchais une solution pour les balises légères. Je modifierai ma question en conséquence.
Dror Cohen
Également d'intérêt possible pour cette Q: stackoverflow.com/questions/2021599/...
Steen
12
Aucune information de date n'est attachée à une balise légère. Par conséquent, la réponse acceptée est incorrecte. Les dates dans la sortie de git log --tags --simplify-by-decoration --pretty="format:%ai %d"sont les dates des objets vers lesquels pointent les balises, et non les dates de création des balises elles-mêmes.
jub0bs
2
@Jubobs à proprement parler, vous avez raison: la bonne réponse est: "Il est impossible de faire ce que l'on veut". Mais c'est probablement ce que voulait l'OP.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Réponses:

303

J'ai trouvé dans ce lien une solution qui correspond à mes besoins:

git log --tags --simplify-by-decoration --pretty="format:%ai %d"

J'ai mis cette commande dans un alias dans my ~/.alias, donc maintenant chaque fois que je lance, gitshowtagbydatej'obtiens ce dont j'avais besoin.

Dror Cohen
la source
8
Cela vaut la peine de mettre cela en ordre pour obtenir un ordre chronologique, si vous aimez ce genre de choses.
cam8001
41
git log --date-order --graph --tags --simplify-by-decoration --pretty=format:'%ai %h %d':-)
Noah Sussman
2
git log --decorate = full --all --pretty = format: '% h% d% s% cr% ae' --abbrev-commit | grep 'refs / tags'
sivann
49
Aucune information de date n'est attachée à une balise légère. Par conséquent, cette réponse est incorrecte. Les dates dans la sortie de git log --tags --simplify-by-decoration --pretty="format:%ai %d"sont les dates des objets vers lesquels pointent les balises, et non les dates auxquelles les balises elles-mêmes ont été créées.
jub0bs
1
@Jubobs Si votre système de balisage effectue un commit séparé, comme Maven , ou si vous écrivez la nouvelle version de balise manuellement dans un fichier de version, par exemple, peu importe qu'il s'agisse d'une balise légère ou d'une balise annotée . C'est parce que le commit lié à la balise légère contiendra de toute façon la date actuelle et les informations du committer.
ingyhere
61

Le git tag -laffiche une liste de toutes les balises. L' --formatargument peut être utilisé pour définir une sortie personnalisée. Par exemple:

git tag -l --format='%(refname)   %(taggerdate)'

Mise à jour, basée sur les commentaires ci-dessous:

 git tag -l --sort=-creatordate --format='%(creatordate:short):  %(refname:short)'
vdboor
la source
13
Délimité par une barre verticale, format de date ISO 8601, trié avec la dernière en haut. git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
ingyhere
14
taggerdaten'est pas toujours défini; essayez creatordate.
9000 le
7
La version @ingyhere était ce que je cherchais - git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r- ref pour personnaliser l'horodatage
revelt
1
@revelt git> = 2.0 fournit un paramètre de tri. Mettez un signe moins pour inverser l'ordre. git tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
con--
En fonction de la git-for-each-refmanière dont l' formatindicateur détermine et rend les champs, vous pouvez ajouter un *avant le nom de champ afin d'obtenir la date de l'objet vers lequel pointe la balise. --format='%(*creatordate)'bien que je n'ai vu aucune différence quand j'ai essayé ceci.
Cheruvim