152 votes

Comment puis-je lister toutes les balises de mon dépôt Git en fonction de la date de leur création ?

J'ai besoin d'un moyen de lister toutes les balises de mon système par date de création mais je ne suis pas sûr de pouvoir obtenir ces données via git-log. Des idées ?

2 votes

Voulez-vous dire que vous voulez obtenir la liste de tous les tags dans l'ordre de leurs dates de création ?

3 votes

FYI (1.) Cette question sert à répertorier les balises ANNOTÉES par date. (2.) Pour répertorier les tags LIGHTWEIGHT par date, aller ici . (3.) Pour un rappel utile sur la différence entre les balises légères et annotées de Git, aller ici .

0 votes

@TrevorBoydSmith : Ce n'est pas tout à fait correct. La différence est que (2) liste toutes les balises par date d'engagement de la engagement marqué alors que cette page donne des solutions qui sont classées par date indiquée (mais seulement pour les balises annotées, car git ne stocke pas la date d'étiquetage pour les balises légères).

11voto

ydroneaud Points 1960

Pour avoir les balises annotées et les balises légères triées ensemble, basées sur la date de livraison, j'utilise :

git for-each-ref --format='%(*committerdate:raw)%(committerdate:raw) %(refname) %(*objectname) %(objectname)' refs/tags | \
  sort -n | awk '{ print $4, $3; }' 

Cette commande listera chaque tag et l'identifiant de l'objet commit associé, dans l'ordre chronologique.

0 votes

Un peu obscurci. ... Dans les tags annotés, 'committerdate' est vide alors que dans les tags légers, 'taggerdate' est vide. Donc, comme solution de contournement, '*committerdate' indique à Git de référencer les dates à partir de l'objet commit original lorsqu'il est léger. ...

0 votes

L'utilisation de "creatordate" à la place devrait effectivement faire la même chose.

8voto

DarVar Points 1116

Avec Git version 2.10.0.windows.1

git tag --sort=taggerdate

5voto

Ce qui suit s'appuie sur le commit, donc cela n'a pas d'importance s'il y a des informations de date avec le commit :

git log --tags --decorate --simplify-by-decoration|grep ^commit|grep tag|sed -e 's/^.*: //' -e 's/)$//' -e 's/,.*$//'|tac

La réponse de Josh Lee, ci-dessus, s'appuie sur une date de marquage pour que l'ordre soit correct.

3voto

Ville Points 366

En m'appuyant sur les méthodes mentionnées précédemment, je voulais également voir la date de marquage réelle sur la liste, et donc ma version en cours d'utilisation est la suivante :

git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(creatordate:short) %(refname) %(*objectname) %(objectname)' refs/tags | sort -n | awk '{ print $3, $5, $4 }'

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