Befehl git, um alle Erstellungsdaten von (leichten) Tags anzuzeigen

186

Gibt es einen Einzeiler, der mir die Daten anzeigt, an denen alle Git-Lightweight-Tags erstellt wurden?

So etwas wie : git show tags --format=date?

Dror Cohen
quelle
1
@jleedev: Ich habe nach einer Lösung für leichte Tags gesucht. Ich werde meine Frage entsprechend bearbeiten.
Dror Cohen
Auch von möglichem Interesse für dieses Q: stackoverflow.com/questions/2021599/…
Steen
11
An ein leichtes Tag sind keine Datumsinformationen angehängt. Daher ist die akzeptierte Antwort falsch. Die Daten in der Ausgabe von git log --tags --simplify-by-decoration --pretty="format:%ai %d"sind die Daten der Objekte, auf die die Tags verweisen, nicht die Daten, an denen die Tags selbst erstellt wurden.
Jub0bs
2
@Jubobs genau genommen haben Sie Recht: Die richtige Antwort lautet: "Es ist unmöglich zu tun, was Sie wollen". Aber genau das wollte das OP.
Ciro Santilli 法轮功 冠状 病 六四 事件 27

Antworten:

303

Ich habe in diesem Link eine Lösung gefunden, die meinen Anforderungen entspricht:

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

Ich habe diesen Befehl in einen Alias ​​in meinem ~/.aliaseingefügt, sodass ich jetzt jedes Mal, wenn ich ihn ausführe gitshowtagbydate, das bekomme, was ich brauchte.

Dror Cohen
quelle
8
Es lohnt sich, dies in Sortierungen zu unterteilen, um eine chronologische Reihenfolge zu erhalten, wenn Sie sich für solche Dinge interessieren.
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
48
An ein leichtes Tag sind keine Datumsinformationen angehängt. Daher ist diese Antwort falsch. Die Daten in der Ausgabe von git log --tags --simplify-by-decoration --pretty="format:%ai %d"sind die Daten der Objekte, auf die die Tags verweisen, nicht die Daten, an denen die Tags selbst erstellt wurden.
Jub0bs
1
@Jubobs Wenn Ihr Tagging-System wie Maven ein separates Commit ausführt oder Sie beispielsweise die neue Tag-Version manuell in eine Versionsdatei schreiben, spielt es keine Rolle, ob es sich um ein leichtes Tag oder ein mit Anmerkungen versehenes Tag handelt . Dies liegt daran, dass das mit dem Lightweight-Tag verknüpfte Commit ohnehin das aktuelle Datum und die Committer-Informationen enthält.
Ingyhere
61

Das git tag -lzeigt eine Liste aller Tags. Das --formatArgument kann verwendet werden, um eine benutzerdefinierte Ausgabe zu definieren. Beispielsweise:

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

Update basierend auf den Kommentaren unten:

 git tag -l --sort=-creatordate --format='%(creatordate:short):  %(refname:short)'
vdboor
quelle
13
Rohr getrennt, ISO 8601 Datumsformatierung, sortiert mit den neuesten oben. git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
Ingyhere
14
taggerdateist nicht immer eingestellt; versuche es creatordate.
9000
7
@ingyhere Version war das, wonach ich gesucht habe - git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r- Ref für das Anpassen des Zeitstempels
revelt
1
@revelt git> = 2.0 liefert einen Sortierparameter. Setzen Sie ein Minus, um die Reihenfolge umzukehren. git tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
con--