Cara tag tua komit dalam Git?

Kita baru untuk git, dan saya ingin mencetak tag di awal repositori kami. Kami kode produksi adalah sama seperti awal repository, tapi kami've terbuat melakukan sejak saat itu. Tag di awal akan memungkinkan kita untuk "roll back" produksi untuk diketahui, negara yang stabil.

Jadi bagaimana untuk menambahkan tag untuk sewenang-wenang, lebih tua lakukan?

Mengomentari pertanyaan (3)
Larutan

Contoh:

git tag -a v1.2 9fceb02 -m "Message here"

Di mana 9fceb02 adalah bagian awal komit id.

Anda kemudian dapat mendorong tag menggunakan git push origin v1.2`.

Anda dapat melakukan git log untuk menampilkan semua komit id's anda saat ini cabang.

Ada juga yang baik bab tag dalam Pro Git buku.

Peringatan: hal Ini menciptakan kategori dengan tanggal saat ini (dan nilai itu adalah apa yang akan menunjukkan pada GitHub rilis halaman, misalnya). Jika anda ingin tag untuk tanggal dengan melakukan upload, silahkan lihat di jawaban lain.

Komentar (6)

Hanya Kode

# Set the HEAD to the old commit that we want to tag
git checkout 9fceb02

# temporarily set the date to the date of the HEAD commit, and add the tag
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" \
git tag -a v1.2 -m"v1.2"

# set HEAD back to whatever you want it to be
git checkout master

Detail

Jawaban oleh @dkinzer menciptakan kategori yang tanggalnya adalah tanggal saat ini (ketika anda berlari git tag perintah), not tanggal dilakukannya. Git membantu untuk tag memiliki bagian _"Pada Backdating Kategori"_ yang mengatakan:

Bila anda telah mengimpor beberapa perubahan dari VCS lain dan ingin menambahkan tag untuk rilis utama dari pekerjaan anda, hal ini berguna untuk dapat menentukan tanggal untuk cantumkan dalam tag objek; data tersebut dalam tag objek mempengaruhi, misalnya, urutan tag di gitweb antarmuka.

_ke mengatur tanggal yang digunakan di masa depan tag benda, set variabel lingkungan GIT_COMMITTER_DATE (lihat nanti diskusi tentang nilai-nilai yang mungkin; bentuk yang paling umum adalah "YYYY-MM-DD HH:MM")._

For contoh:

$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1

Halaman "Bagaimana untuk Tag di Git" menunjukkan kepada kita bahwa kita dapat mengekstrak saat KEPALA komit melalui:

git show --format=%aD  | head -1
#=> Wed, 12 Feb 2014 12:36:47 -0700

Kita bisa mengekstrak tanggal tertentu melakukan melalui:

GIT_COMMITTER_DATE="$(git show 9fceb02 --format=%aD | head -1)" \
git tag -a v1.2 9fceb02 -m "v1.2"

Namun, bukannya mengulang melakukan dua kali, tampaknya lebih mudah untuk mengubah KEPALA yang komit dan menggunakannya secara implisit di kedua perintah:

git checkout 9fceb02 

GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a v1.2 -m "v1.2"
Komentar (4)

Cara paling sederhana untuk melakukan ini adalah

git tag v1.0.0 f4ba1fc

dengan f4ba1fc menjadi awal dari hash komit ingin anda tag v1.0.0 menjadi versi yang ingin anda tag.

Komentar (0)

Gunakan perintah:

git tag v1.0 ec32d32

Dimana v1.0 adalah nama tag dan ec32d32 adalah melakukan yang ingin anda tag

Setelah selesai anda dapat mendorong tag oleh:

git push origin --tags

Referensi:

Git (revisi kontrol): Bagaimana saya dapat tag tertentu sebelumnya melakukan titik di GitHub?

Komentar (0)

OK, Anda hanya dapat melakukan:

git tag -a  

Jadi jika anda ingin menambahkan tag: 1.0.2 untuk melakukan e50f795, hanya cukup melakukan:

git tag -a 1.0.2 e50f795

Juga anda tambahkan pesan pada akhirnya, dengan menggunakan -m, sesuatu seperti ini:

git tag -a 1.0.2 e50f795 -m "my message"

Setelah semua, anda perlu untuk mendorong ke remote, untuk melakukan itu, cukup lakukan:

git push origin 1.0.2 

Jika anda memiliki banyak kategori yang anda don't ingin menyebutkan mereka satu per satu, hanya cukup melakukan:

git push origin --tags

untuk mendorong semua kategori bersama-sama...

Juga, saya membuat langkah-langkah pada gambar di bawah ini, untuk klarifikasi lebih lanjut dari langkah-langkah:


Anda juga dapat menambahkan tag di Hub atau menggunakan alat-alat seperti SourceTree, untuk menghindari langkah-langkah sebelumnya, saya log-in ke saya Bitbucket dalam kasus ini dan melakukan itu dari sana:

  1. Pergi ke cabang anda dan menemukan melakukan anda ingin menambahkan tag dan klik di atasnya:

  1. Di komit halaman, di sebelah kanan, menemukan di mana ia mengatakan No tag, dan klik pada ikon+:

  1. Di tag nama kotak, tambahkan tag:

  1. Sekarang anda melihat bahwa tag telah berhasil dibuat:

Komentar (0)

Ini adalah pertanyaan lama, dan jawaban yang sudah diberikan semua bekerja, tapi ada's juga merupakan pilihan yang dapat dipertimbangkan.

Jika anda're menggunakan SourceTree untuk mengelola repositori git anda, anda dapat klik kanan pada setiap komit dan menambahkan tag untuk itu. Dengan satu klik anda juga dapat mengirim tag langsung ke cabang asal.

Komentar (0)

Bangunan atas jawaban dari orang lain, di sini adalah satu-liner solusi yang menetapkan tag untuk tanggal ketika itu benar-benar terjadi, dijelaskan menggunakan tag dan tidak memerlukan git checkout:

tag="v0.1.3" commit="8f33a878" bash -c 'GIT_COMMITTER_DATE="$(git show --format=%aD $commit)" git tag -a $tag -m $tag $commit'
git push --tags origin master

di mana tag adalah set yang diinginkan tag string, dan berkomitmen untuk melakukan hash.

Komentar (0)

Jawaban oleh @Phrogz besar, tapi doesn't bekerja pada Windows. Berikut ini's bagaimana untuk tag tua komit dengan melakukan's asli saat menggunakan Powershell:

lang-powershell git checkout 9fceb02 $env:GIT_COMMITTER_DATE = git show --format=%iklan | Pilih -1 Pertama git tag v1.2 git checkout master

Komentar (0)