Kami baru git, dan saya ingin menetapkan tag di awal repositori kami. Kode produksi kami sama dengan repositori awal, tetapi kami telah membuat komitmen sejak saat itu. Sebuah tag di awal akan memungkinkan kita untuk "memutar kembali" produksi ke kondisi stabil yang diketahui.
Jadi, bagaimana cara menambahkan tag ke komit yang sewenang-wenang dan lebih lama?
git
version-control
git-tag
hogsolo
sumber
sumber
Jawaban:
Contoh:
Di mana
9fceb02
bagian awal dari id komit.Anda kemudian dapat mendorong tag menggunakan
git push origin v1.2
.Anda dapat melakukannya
git log
untuk menampilkan semua ID komit di cabang Anda saat ini.Ada juga bab bagus tentang pemberian tag di buku Pro Git.
Peringatan: Ini membuat tag dengan tanggal saat ini (dan nilai itulah yang akan ditampilkan pada halaman rilis GitHub, misalnya). Jika Anda ingin tag diberi tanggal dengan tanggal komit, silakan lihat jawaban lain .
sumber
-a
dan-m "Message here"
jika Anda tidak ingin menambahkan pesan:git tag v1.2 9fceb02
-a
dan-m
. Halaman manual tampaknya mengatakan-a
tersirat saat-m
digunakan.git push --tags origin master
akan mendorong semua tag pada cabang lokal ke jarak jauh. Lebih sukagit push origin <tag_name>
menekan tag yang dibuat. Lihat: stackoverflow.com/a/5195913/452708 , git-scm.com/book/en/v2/Git-Basics-TaggingHanya Kodenya
Detail
Jawaban oleh @dkinzer membuat tag yang tanggalnya adalah tanggal saat ini (ketika Anda menjalankan
git tag
perintah), bukan tanggal dari komit. Bantuan Git untuktag
memiliki bagian "Pada Tag Backdating" yang mengatakan:Halaman "Cara Memberi Tag di Git" menunjukkan kepada kita bahwa kita dapat mengekstrak waktu komitmen HEAD melalui:
Kami dapat mengekstraksi tanggal dari komitmen tertentu melalui:
Namun, daripada mengulangi komit dua kali, tampaknya lebih mudah untuk hanya mengubah HEAD ke komit itu dan menggunakannya secara implisit dalam kedua perintah:
sumber
Cara paling sederhana untuk melakukan ini adalah:
dengan
f4ba1fc
menjadi awal hash dari commit yang ingin Anda tandai danv1.0.0
menjadi versi yang ingin Anda tandai.sumber
Gunakan perintah:
Di mana v1.0 adalah nama tag dan ec32d32 adalah komit yang ingin Anda beri tag
Setelah selesai, Anda dapat mendorong tag dengan:
Referensi:
Git (kontrol revisi): Bagaimana saya bisa menandai titik komit tertentu sebelumnya di GitHub?
sumber
OK , Anda cukup melakukan:
Jadi jika Anda ingin menambahkan tag: 1.0.2 untuk dikomit
e50f795
, cukup lakukan:Anda juga menambahkan pesan di bagian akhir, menggunakan
-m
, sesuatu seperti ini:Bagaimanapun, Anda perlu mendorongnya ke
remote
, untuk melakukan itu, cukup lakukan:Jika Anda memiliki banyak tag yang tidak ingin Anda sebutkan satu per satu, cukup lakukan:
untuk menyatukan semua tag ...
Juga, saya membuat langkah-langkah pada gambar di bawah ini, untuk klarifikasi lebih lanjut dari langkah-langkah:
Anda juga dapat menemukan tag di Hub atau menggunakan alat seperti SourceTree , untuk menghindari langkah-langkah sebelumnya, saya masuk ke Bitbucket saya dalam kasus ini dan melakukannya dari sana:
No tags
dan klik+
ikon:sumber
Ini adalah pertanyaan lama, dan jawabannya sudah memberikan semua pekerjaan, tetapi ada juga opsi baru yang dapat dipertimbangkan.
Jika Anda menggunakan SourceTree untuk mengelola repositori git Anda, Anda dapat mengklik kanan komit dan menambahkan tag ke sana. Dengan mouseclick lain Anda juga dapat mengirim tag langsung ke cabang asal.
sumber
Membangun berdasarkan jawaban yang lain, berikut ini adalah solusi satu-liner yang menetapkan tanggal tag ketika itu benar-benar terjadi, menggunakan tag beranotasi dan tidak memerlukan
git checkout
:di mana
tag
diatur ke string tag yang diinginkan, dancommit
ke hash komit.sumber
The jawabannya oleh @Phrogz besar, tetapi tidak bekerja pada Windows. Berikut ini cara menandai komit lama dengan tanggal asli komit menggunakan Powershell:
sumber