Untuk rilis saya biasanya memberi tag dengan sesuatu seperti v1.1.0. Selama skrip build saya, saya membuat file fwVersion.c yang berisi info git saat ini. Saat ini, saya telah komit, dan info cabang di file tersebut, tetapi saya ingin menambahkan tag.
Apakah ini mungkin?
git describe --tags <commit-id>
untuk tag tanpa anotasigit describe --all --exact-match `git rev-parse HEAD`
git describe --tags --abbrev=0 REV
akan berguna bila Anda tidak ingin sampah di tag.git describe --all
(untuk komit yang saat ini diperiksa) ataugit describe --all <commit>
selalu melakukan hampir semua yang saya inginkan.Jika yang Anda inginkan adalah tag pertama yang berisi komit maka:
memberikan jawaban terbaik IMO. Jika Anda memiliki tag yang lebih sering daripada menggunakan "git tag --contains" pada komit lama di repositori besar dapat memakan waktu beberapa saat untuk dijalankan dan memberi Anda semua tag yang berisi komit itu.
Bentuk git menggambarkan ini berjalan sangat cepat dan memberi Anda nilai keluaran tunggal yang merupakan tag pertama yang berisi komit dan seberapa jauh komit Anda.
sumber
Bagaimana dengan ini?
git tag --points-at <commit-id>
Ini memberi Anda semua tag yang dimiliki komit yang diberikan (sedangkan
git describe
hanya memberi Anda satu), dan tidak menyertakan tag pada komit turunan (sepertigit tag --contains
halnya).sumber
Anda dapat menemukan informasi ini di manual
sumber
Saya menemukan kombinasi dari kedua jawaban teratas untuk memberi saya apa yang saya inginkan:
Ini memberi Anda tag HANYA untuk komit itu dan untuk yang tanpa penjelasan. Berguna ketika Anda ingin menemukan tag dan tidak khawatir tentang menghapus pemformatannya (untuk Jenkins misalnya).
misalnya.
$ git describe --tags --exact-match head~2
Memberi anda:
sumber
Konsolidasi beberapa jawaban:
git tag --contains [<ref>]
dan
git tag --points-at [<ref>]
atau hanya
git tag
berperilaku sama, mencetak setiap (dan semua) tag untuk ref yang ditentukan atau komit saat ini jika tidak ditentukan.
git describe --tags [<ref>]
di mana
<ref>
default untuk komit saat ini, keluar dengan 128 jika tidak ada tag yang diasosiasikan dengan komit, dan mencetak tag yang terkait dengan komit (sepertinya tidak ada pola).git describe [<ref>]
berperilaku sama seperti dengan--tags
hanya mencetak tag beranotasi.Menyediakan opsi
--contains
untukdescribe
mencetak tag yang terkait dengan leluhur komit yang ditentukan. Sebagai contohsumber