Git'te eski bir commit nasıl etiketlenir?

Git'te yeniyiz ve depomuzun başına bir etiket koymak istiyorum. Üretim kodumuz başlangıçtaki depoyla aynı, ancak o zamandan beri taahhütler yaptık. Başlangıçtaki bir etiket, üretimi bilinen, kararlı bir duruma "geri döndürmemize" izin verecektir.

Peki rastgele, daha eski bir işleme nasıl etiket eklenir?

Çözüm

Örnek:

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

Burada 9fceb02 taahhüt kimliğinin başlangıç kısmıdır.

Daha sonra etiketi git push origin v1.2 kullanarak gönderebilirsiniz.

Mevcut dalınızdaki tüm commit id'lerini göstermek için git log yapabilirsiniz.

Pro Git kitabında etiketleme ile ilgili iyi bir bölüm de bulunmaktadır.

Uyarı: Bu, güncel tarih ile etiketler oluşturur (ve bu değer, örneğin GitHub sürümleri sayfasında gösterilecek olan değerdir). Etiketin commit tarihi ile tarihlendirilmesini istiyorsanız, lütfen başka bir yanıt adresine bakın.

Yorumlar (6)

Sadece Kod

# 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

Detaylar

dkinzer tarafından verilen yanıt, tarihi geçerli tarih olan (git tag komutunu çalıştırdığınız zaman) etiketler oluşturur, işleme tarihi değil. tag` için Git yardımında _"On Backdating Tags"_ şeklinde bir bölüm vardır:

Bazı değişiklikleri başka bir VCS'den içe aktardıysanız ve çalışmanızın ana sürümleri için etiketler eklemek istiyorsanız, etiket nesnesinin içine gömülecek tarihi belirtebilmeniz yararlıdır; etiket nesnesindeki bu tür veriler, örneğin gitweb arayüzündeki etiketlerin sıralamasını etkiler.

Gelecekteki etiket nesnelerinde kullanılan tarihi ayarlamak için GIT_COMMITTER_DATE ortam değişkenini ayarlayın (olası değerlerin daha sonraki tartışmasına bakın; en yaygın biçim "YYY-MM-DD HH:MM")._

Örneğin:

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

Sayfa "Git" aracılığıyla HEAD commit'inin zamanını çıkarabileceğimizi gösteriyor:

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

Belirli bir işlemin tarihini şu yolla çıkarabiliriz:

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

Bununla birlikte, commit'i iki kez tekrarlamak yerine, HEAD'i bu commit'e değiştirmek ve her iki komutta da dolaylı olarak kullanmak daha kolay görünüyor:

git checkout 9fceb02 

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

Bunu yapmanın en basit yolu şudur

git tag v1.0.0 f4ba1fc

f4ba1fcetiketlemek istediğiniz commit'in hash'inin başlangıcı vev1.0.0` etiketlemek istediğiniz sürüm olmak üzere.

Yorumlar (0)