Mengapa git log --decorate
tidak menampilkan lebih dari satu tag per komit?
EDIT : Charles Bailey telah menemukan jawabannya (setidaknya dalam kasus saya) Pada
dasarnya, saya memiliki satu tag yang menunjuk ke tag lain yang menunjuk ke komit. Karena lapisan tambahan tipuan ini, tag tidak muncul di log. Saya harus memperbaikinya, layu dengan memperbaiki skrip pemberian tag kami ke tag dengan benar, atau dengan beberapa skrip shell voodoo untuk mengikuti tag secara rekursif. Bagaimanapun, saya akan meninggalkan pertanyaan ini hanya untuk referensi jika ada yang menginginkannya. (Saya baru mengenal stack overflow, tetapi saya berasumsi bahwa itu adalah protokol yang benar?)
... Pertanyaan awal mengikuti ...
Backstory: Kami menggunakan GIT di tempat kerja untuk kontrol sumber, dan kami memiliki kebijakan untuk selalu menandai komit saat kami menerapkan. (Ini sebenarnya adalah skrip yang melakukan tag, dan kemudian menarik tag di server). Karena ini adalah aplikasi web dengan penahapan terpisah dan server produksi, kami sering menandai rilis untuk penahapan (untuk pengujian atau apa pun), dan kemudian memberi tag komit yang sama untuk produksi.
Jadi sebenarnya sangat sering kita memiliki beberapa tag pada komit yang sama. Akan sangat menyenangkan bisa melihat ini di log teks, tapi sepertinya tidak mendukungnya. Saat ini saya sedang mengatasi masalah ini dengan memeriksa tag yang saya cari secara manual, atau dengan mengaktifkannya gitk
. Meskipun kedua solusi ini berfungsi, menurut saya sangat aneh untuk git log --decorate
hanya mendukung satu tag per komit secara default.
Saya melakukan beberapa googling, tetapi tidak menemukan banyak. Apakah saya melewatkan sesuatu yang jelas?
PS (Saya sebenarnya menggunakan string format kustom dengan %d
, menurut halaman manual dan beberapa tes cepat, itu setara dengan --decorate
)
Jawaban:
Perhatikan tentang tag of tag (menandai sebuah tag), yang merupakan asal mula masalah Anda, seperti yang ditunjukkan Charles Bailey dengan benar dalam komentar:
Pastikan Anda mempelajari utas ini , karena mengganti tag bertanda tangan tidaklah mudah:
git tag
halaman manual dengan serius menyarankangit tag -f B
agar tidak mengganti nama tag "A
"jangan mencoba membuat ulang tag yang ditandatangani dengan
git tag -f
(lihat ekstrak utas di bawah)(Ini tentang kasus sudut, tetapi cukup instruktif tentang tag secara umum, dan ini berasal dari kontributor SO lain Jakub Narębski ):
sumber
Versi ini akan mencetak pesan komit juga:
sumber
Catatan: komit 5e1361c dari brian m. carlson (
bk2204
) (untuk git 1.9 / 2.0 Q1 2014) berurusan dengan kasus khusus dalam hal dekorasi log dengan tag:log: menangani dekorasi dengan benar dengan tag dirantai
Contoh:
sumber