perintah git untuk menampilkan semua tanggal pembuatan tag (ringan)

186

Apakah ada satu liner yang menunjukkan tanggal di mana semua tag ringan git dibuat?

Sesuatu seperti: git show tags --format=date?

Dror Cohen
sumber
1
@ jleedev: Saya mencari solusi untuk tag ringan. Saya akan mengedit pertanyaan saya sesuai.
Dror Cohen
Mungkin juga menarik untuk Q ini: stackoverflow.com/questions/2021599/…
Steen
12
Tidak ada informasi tanggal yang dilampirkan pada tag yang ringan. Karena itu, jawaban yang diterima salah. Tanggal dalam output git log --tags --simplify-by-decoration --pretty="format:%ai %d"adalah tanggal dari objek yang ditunjuk oleh tag, bukan tanggal saat tag itu sendiri dibuat.
jub0bs
2
@Jubobs secara tegas, Anda benar: jawaban yang benar adalah: "Tidak mungkin melakukan apa yang Anda inginkan". Tapi itu kemungkinan yang diinginkan OP.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Jawaban:

303

Saya menemukan di tautan ini solusi yang sesuai dengan kebutuhan saya:

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

Saya telah memasukkan perintah itu ke dalam alias ~/.alias, jadi sekarang setiap kali saya menjalankan, gitshowtagbydatesaya mendapatkan apa yang saya butuhkan.

Dror Cohen
sumber
8
Sebaiknya perpipaan ini menjadi semacam untuk mendapatkan urutan kronologis, jika Anda menyukai hal semacam itu.
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 'ref / tag'
sivann
49
Tidak ada informasi tanggal yang dilampirkan pada tag yang ringan. Karenanya, jawaban ini salah. Tanggal dalam output git log --tags --simplify-by-decoration --pretty="format:%ai %d"adalah tanggal dari objek yang ditunjuk oleh tag, bukan tanggal saat tag itu sendiri dibuat.
jub0bs
1
@Jubobs Jika sistem penandaan Anda melakukan komit terpisah, seperti Maven , atau jika Anda menulis versi tag baru secara manual ke file versi, misalnya, itu tidak masalah apakah itu tag yang ringan atau tag yang beranotasi . Itu karena komit yang ditautkan dengan tag ringan akan memuat informasi tanggal dan pengalih saat ini.
ingyhere
61

Itu git tag -lmenunjukkan daftar semua tag. The --formatargumen dapat digunakan untuk menentukan output kustom. Sebagai contoh:

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

Perbarui, berdasarkan komentar di bawah ini:

 git tag -l --sort=-creatordate --format='%(creatordate:short):  %(refname:short)'
vdboor
sumber
13
Pipa dibatasi, iso 8601 format tanggal, disortir dengan yang terbaru di atas. git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
ingyhere
14
taggerdatetidak selalu diatur; coba creatordate.
9000
7
@ versi di mana adalah hal yang saya cari - git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r- ref untuk menyesuaikan cap waktu
kembalilah
1
@revelt git> = 2.0 menyediakan param semacam. Masukkan tanda minus untuk membalik urutan. git tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
con--
Menurut git-for-each-refbagaimana formatflag menentukan dan merender bidang, Anda bisa menambahkan *sebelum nama field sehingga Anda mendapatkan pada tanggal objek yang ditunjuk tag. --format='%(*creatordate)'walaupun saya tidak melihat perbedaan ketika saya mencoba ini.
Cheruvim