polecenie git, aby wyświetlić wszystkie (lekkie) daty utworzenia znaczników

186

Czy istnieje jedna linijka, która pokazuje mi daty, w których wszystkie lekkie tagi git zostały utworzone?

Coś jak: git show tags --format=date?

Dror Cohen
źródło
1
@jleedev: Szukałem rozwiązania dla lekkich tagów. Zmienię odpowiednio moje pytanie.
Dror Cohen
Możliwe również zainteresowanie tym pytaniem: stackoverflow.com/questions/2021599/…
Steen
12
Lekka etykieta nie zawiera informacji o dacie. Dlatego zaakceptowana odpowiedź jest niepoprawna. Daty na wyjściu git log --tags --simplify-by-decoration --pretty="format:%ai %d"to daty obiektów, na które wskazują tagi, a nie daty, kiedy same tagi zostały utworzone.
jub0bs
2
@Jubobs ściśle mówiąc, masz rację: poprawna odpowiedź brzmi: „Nie można robić, co chcesz”. Ale prawdopodobnie tego chciał PO.
Ciro Santilli 27 冠状 病 六四 事件 法轮功

Odpowiedzi:

303

W tym linku znalazłem rozwiązanie, które odpowiada moim potrzebom:

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

Umieściłem tę komendę w swoim aliasie ~/.alias, więc teraz za każdym razem, gdy uruchamiam gitshowtagbydate, dostaję to, czego potrzebowałem.

Dror Cohen
źródło
8
Warto nadać temu porządek, aby uzyskać chronologiczny porządek, jeśli lubisz takie rzeczy.
cam8001
41
git log --date-order --graph --tags --simplify-by-decoration --pretty=format:'%ai %h %d':-)
Noah Sussman
2
git log --decorate = pełny - all --pretty = format: '% h% d% s% cr% ae' --abbrev-commit | grep 'refs / tags'
sivann
49
Lekka etykieta nie zawiera informacji o dacie. Dlatego ta odpowiedź jest niepoprawna. Daty na wyjściu git log --tags --simplify-by-decoration --pretty="format:%ai %d"to daty obiektów, na które wskazują tagi, a nie daty, kiedy same tagi zostały utworzone.
jub0bs
1
@Jubobs Jeśli Twój system znakowania wykonuje osobne zatwierdzenie, takie jak Maven , lub jeśli na przykład ręcznie zapisujesz nową wersję znacznika w pliku wersji, nie będzie to miało znaczenia, czy jest to lekki znacznik, czy znacznik z adnotacjami . Jest tak, ponieważ zatwierdzenie powiązane z lekkim tagiem będzie zawierało aktualną datę i informacje o komisarzu.
ingyhere
61

git tag -lPokazuje listę wszystkich tagów. --formatArgument może być użyty do zdefiniowania wyjścia niestandardowego. Na przykład:

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

Aktualizacja, na podstawie poniższych komentarzy:

 git tag -l --sort=-creatordate --format='%(creatordate:short):  %(refname:short)'
vdboor
źródło
13
Rura rozdzielana, formatowanie daty ISO 8601, posortowane według najnowszych na górze. git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
ingyhere
14
taggerdatenie zawsze jest ustawiony; spróbuj creatordate.
9000
7
Wersja @ingyhere było rzeczą szukałem - git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r- ref dostosowywania datownik
revelt
1
@revelt git> = 2.0 zapewnia parametr sortowania. Wpisz minus, aby odwrócić kolejność. git tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
con--