comando git per mostrare tutte le date di creazione dei tag (leggere)


186

Esiste un solo liner che mi mostra le date in cui sono stati creati tutti i tag Git Light?

Qualcosa del tipo git show tags --format=date:?



1
@jleedev: stavo cercando una soluzione per etichette leggere. Modificherò la mia domanda di conseguenza.
Dror Cohen,

Anche di possibile interesse per questo Q: stackoverflow.com/questions/2021599/…
Steen

12
Non ci sono informazioni sulla data allegate a un tag leggero. Pertanto, la risposta accettata non è corretta. Le date nell'output di git log --tags --simplify-by-decoration --pretty="format:%ai %d"sono le date degli oggetti a cui puntano i tag, non le date in cui i tag stessi sono stati creati.
jub0bs,

2
@Jubobs a rigor di termini, hai ragione: la risposta corretta è: "È impossibile fare quello che vuoi". Ma è probabilmente quello che voleva l'OP.
Ciro Santilli 27 冠状 病 六四 事件 法轮功

Risposte:


303

Ho trovato in questo link una soluzione adatta alle mie esigenze:

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

Ho inserito quel comando in un alias nel mio ~/.alias, quindi ora ogni volta che corro gitshowtagbydateottengo ciò di cui ho bisogno.


8
Vale la pena collegarlo in una specie per ottenere un ordine cronologico, se ti interessa quel genere di cose.
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
Non ci sono informazioni sulla data allegate a un tag leggero. Pertanto, questa risposta non è corretta. Le date nell'output di git log --tags --simplify-by-decoration --pretty="format:%ai %d"sono le date degli oggetti a cui puntano i tag, non le date in cui i tag stessi sono stati creati.
jub0bs,

1
@Jubobs Se il tuo sistema di tagging esegue un commit separato, come Maven , o se scrivi la nuova versione del tag manualmente in un file di versione, ad esempio, non importa se si tratta di un tag leggero o di un tag annotato . Questo perché il commit collegato al tag leggero conterrà comunque la data corrente e le informazioni sul committer.
ingyhere

61

La git tag -lmostra un elenco di tutti i tag. L' --formatargomento può essere utilizzato per definire un output personalizzato. Per esempio:

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

Aggiornamento, in base ai commenti seguenti:

 git tag -l --sort=-creatordate --format='%(creatordate:short):  %(refname:short)'

13
Delimitato da pipe, ISO 8601 formattazione della data, ordinato con l'ultimo in cima. git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
inghere il

14
taggerdatenon è sempre impostato; provare creatordate.
9000

7
La versione di @ingyhere era la cosa che stavo cercando - git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r- ref per personalizzare il timestamp
rinnovato l'

1
@revelt git> = 2.0 fornisce un parametro di ordinamento. Inserisci un segno meno per invertire l'ordine. git tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
con--

In base al modo in git-for-each-refcui la formatbandiera determina e rende i campi, è possibile aggiungere un *prima del nome campo in modo da ottenere la data dell'oggetto a cui punta il tag. --format='%(*creatordate)'anche se non ho visto alcuna differenza quando ho provato questo.
Cheruvim
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.