Obtenez de l'heure et de la date de git tags
J'ai un projet qui est à l'aide de git et ont marqué toutes les versions avec un tag.
$ git tag
v1.0.0
v1.0.1
v1.0.2
v1.0.3
v1.1.0
Mon but est de lister les versions et les dates de sortie dans une interface web (tag/commit date = date de sortie). Actuellement, nous avons la liste de tous les rejets en utilisant git tag
.
Comment puis-je obtenir l'heure et la date lorsque le tag a été fait (ou de le commettre points)?
- Il est bon de préciser ici que c'est la validation de la date de la balise que vous êtes après. Comme une balise n'a pas de date.
- Double Possible de Comment puis-je afficher tous les tags dans mon dépôt Git par la date à laquelle ils ont été créés?
- Annoté les balises ne ont une date.
Vous devez vous connecter pour publier un commentaire.
Utiliser le
--format
argumentgit log
:git log -1 --format=%ai v0.2.3
.--format=%aI
(majuscule "I")git log -1 --format=%ai MY_TAG_NAME | cat
désactiver l'affichage de la pageCe toujours fonctionné pour moi:
Consulter le "JOLI" de la section FORMATS de git-journal page de manuel pour plus de détails de la chaîne de format si vous souhaitez une autre date de mise en forme.
taglog = log --tags --simplify-by-decoration --pretty='format:%ci %d'
(note unique, PAS de double-quotes) dans le [alias] section de votre .gitconfig fichier, et maintenant vous avez un git taglog commande 🙂Remarque que les deux solutions ci-dessus vous obtenir la validation de la date, qui peut-être très différente que lorsqu'qui s'engagent a été marqué pour la libération. Pour obtenir la date de la balise elle-même, ce que vous avez à trouver la balise elle-même avec
rev-parse
, de le lire aveccat-file
, puis de l'analyser. Un peu de pipeline:git rev-parse v1.0.0 | xargs git cat-file -p | egrep '^tagger' | cut -f2 -d '>'
Une option de plus:
Voir https://git-scm.com/docs/git-for-each-ref#_field_names pour les options de format de
%(creatordate)
donne la date de la livraison a souligné, à voir la date de la balise a été créé sur l'utilisation%(taggerdate)
Vous pouvez incorporer le shell directement:
git for-each-ref --format="%(taggerdate:unix)" refs/tags
ou en tant que sous-chaîne dansgit for-each-ref --format="%(taggerdate:raw)" refs/tags
Il n'est pas simple option dans git tag de commande pour ce faire. Je trouvé de plus pratique pour courir
à la liste de tous les commits y compris les balises si il y a quelques. Pour l'inscription n'engage que sont marqués utilisation
Pour les détails d'utilisation
on peut utiliser
gawk
(pasawk
) pour convertir la date dans le "tagger" ligne à quelque chose de lisible par l'homme:si l'on n'aime pas
gawk
puisdate
peut être utilisé pour convertir le temps unix:et l'exemple (
dnsmasq
repo git):dnsmasq
repo git, par exemple:$ git rev-parse v2.76 | xargs git cat-file -p | awk '/^tagger/ { print strftime(PROCINFO["strftime"], $(NF-1)) }'
Wed May 18 16:52:12 CEST 2016