UYARI: Bu olacak değil açıklamalı etiketleri için etiket iletilerin korunacağı.
Özet
Değiştirilmesi gereken her etiket için:
- Etiketi temsil eden işleme için zamanda geri gidin
- Etiketi silin (yerel olarak ve uzaktan)
- Bu, GitHub'daki "Sürümünüzü" daha sonra silebileceğiniz bir Taslağa dönüştürecektir.
- Tarihini kaydetme tarihine ayarlayan sihirli bir çağrı kullanarak aynı adlı etiketi yeniden ekleyin.
- Sabit tarihlere sahip yeni etiketleri GitHub'a geri gönderin.
- GitHub'a gidin, taslak halindeki tüm sürümleri silin ve yeni etiketlerden yeni sürümleri yeniden oluşturun
Kodda:
git checkout 1.0.1
git tag -d 1.0.1
git push origin :refs/tags/1.0.1
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a 1.0.1 -m"v1.0.1"
git push --tags
Detaylar
Git'te Nasıl Etiketleneceğine Göre :
Bir sürümü veya sürüm çarpmasını etiketlemeyi unutursanız, bunu her zaman şu şekilde geriye dönük olarak etiketleyebilirsiniz:
git checkout SHA1_OF_PAST_COMMIT
git tag -m"Retroactively tagging version 1.5" v1.5
Ve bu mükemmel bir şekilde kullanılabilir olsa da, etiketlerinizi kronolojik sıranın dışına yerleştirme etkisine sahiptir ve bu, "en son" etiketi arayan yapı sistemleriyle uğraşabilir. Ama korkmayın. Linus her şeyi düşündü:
git checkout SHA1_OF_PAST_COMMIT
git show --format=%aD | head -1
GIT_COMMITTER_DATE="Thu Nov 11 12:21:57 2010 -0800" git tag -a 0.9.33 -m"Retroactively tagging version 0.9.33"
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a 0.9.33 -m"Retroactively tagging version 0.9.33"
Ancak, etiketi zaten eklediyseniz, yukarıdakileri ile kullanamazsınız, git tag -f existingtagyoksa git birleştirmeye çalıştığınızda şikayet eder:
Rammy:docubot phrogz$ git push --tags
To git@github.com:Phrogz/docubot.git
! [rejected] 1.0.1 -> 1.0.1 (already exists)
error: failed to push some refs to 'git@github.com:Phrogz/docubot.git'
hint: Updates were rejected because the tag already exists in the remote.
Bunun yerine etiketi yerel olarak kaldırmanız gerekir:
git tag -d 1.0.1
Bu silme işlemini uzaktan itin :
git push origin :refs/tags/1.0.1
GitHub'da Sürümleri yeniden yükleyin — sürüm artık "Taslak" olarak işaretlendi - ve taslağı kaldırın.
Şimdi, yukarıdaki talimatlara göre eski tarihli etiketi ekleyin ve son olarak ortaya çıkan etiketi GitHub'a gönderin:
git push --tags
ve sonra gidin ve GitHub Sürüm bilgilerini yeniden ekleyin.
git tag -l | while read -r tag; do `git checkout $tag && git tag -d $tag && git push origin :refs/tags/$tag && GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a $tag -m"$tag"`; done; git push --tags