Git Tag
- Türkçe karşılığı
- etiket
- Okunuşu
- git teg
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
Kısaca
Git tag, belirli bir commit'i gösteren adlandırılmış kalıcı bir işaretçidir; çoğunlukla deponun geçmişinde v1.0.0 gibi sürümleri işaretlemek için kullanılır.
Git tag nedir?
Git tag, tek bir commit'e iliştirilmiş, insan tarafından okunabilir bir etikettir. Her commit yaptığınızda ilerleyen branch'in aksine tag, biri onu bilerek silmedikçe ya da taşımadıkça aynı commit üzerinde kalır. Ekipler tag'leri esas olarak sürümleri işaretlemek için kullanır; böylece herkes v2.3.0 sürümü olarak hangi kodun yayımlandığını tam olarak bulabilir.
Git'te iki tür tag vardır. Lightweight (hafif) tag, bir yer imi gibi, yalnızca bir commit'i gösteren bir addır. git tag -a ile oluşturulan annotated (açıklamalı) tag ise etiketleyenin adını, bir tarihi, bir mesajı ve isteğe bağlı olarak kriptografik bir imzayı içeren tam bir Git nesnesi olarak saklanır; sürümler için annotated tag'lerin önerilmesinin nedeni budur. Tag'ler varsayılan olarak push edilmez; bunları git push origin v2.3.0 veya git push --tags ile açıkça göndermeniz gerekir.
Tag'i, bir kitabın revizyon geçmişine yapıştırılmış ve 'bastığımız baskı bu' yazan bir not gibi düşünün. Tag'ler genellikle v1.4.2 gibi semantic versioning'i izler ve CI/CD hatları çoğu zaman yeni tag'leri izleyerek bir sürümü otomatik olarak derleyip yayımlar. Kod barındırma platformları da tag'leri sürüm sayfalarının ve indirilebilir kaynak arşivlerinin temeli olarak kullanır.
En yaygın karışıklık tag ile branch arasındadır. Branch, süregelen iş için tasarlanmış hareketli bir işaretçidir; tag ise geçmişte bir anı kaydetmek için tasarlanmış sabit bir işaretçidir. Bir tag'i doğrudan checkout ederseniz Git sizi detached HEAD durumuna sokar; bu, bir branch oluşturmadığınız sürece yeni commit'lerin hiçbir branch'e ait olmayacağı anlamına gelir.
Önemli noktalar
- Tag, tek bir commit'i gösteren sabit ve adlandırılmış bir işaretçidir.
- Annotated tag'ler yazar, tarih ve mesaj saklar ve sürümler için önerilir.
- Lightweight tag'ler, ek veri içermeyen basit ad-commit işaretçileridir.
- Tag'ler açıkça push edilmelidir; düz bir
git pushonları göndermez. - Branch'lerin aksine tag'ler yeni commit'ler eklendiğinde hareket etmez.
Örnek
# Create an annotated tag for a release on the current commit
git tag -a v1.2.0 -m "Release 1.2.0"
# List tags and show the details of one
git tag
git show v1.2.0
# Tags are not pushed automatically
git push origin v1.2.0
# Delete a tag locally and on the remote
git tag -d v1.2.0
git push origin --delete v1.2.0Sık sorulan sorular
Git tag ile branch arasındaki fark nedir?
Branch, commit ekledikçe ilerleyen bir işaretçidir; tag ise kalıcı olarak tek bir commit'e bağlı kalır. Branch'ler süregelen iş içindir; tag'ler ise sürümler gibi sabit noktaları işaretler.
Annotated mı yoksa lightweight tag mi kullanmalıyım?
Sürümler ve paylaştığınız her şey için annotated tag kullanın; çünkü tag'i kimin, ne zaman ve neden oluşturduğunu kaydeder ve imzalanabilir. Lightweight tag'ler geçici, kişisel yer imleri için uygundur.
Tag'leri uzak depoya nasıl push ederim?
Tek bir tag'i git push origin <tagname> ile ya da tüm yerel tag'leri git push --tags ile push edin. Commit'leri, onları gösteren annotated tag'lerle birlikte göndermek için git push --follow-tags de kullanabilirsiniz.
İlgili sayfalar
- CommitSürüm Kontrolü, s. 5Commit, Git'te projenin dosyalarının; benzersiz bir kimlik, yazar, zaman damgası ve değişikliği anlatan bir mesajla kaydedilmiş anlık görüntüsüdür.
- Semantic VersioningSürüm Kontrolü, s. 35Semantic versioning, her bölümün bir sürümün uyumluluğu bozduğunu, özellik eklediğini ya da hata düzelttiğini belirttiği MAJOR.MINOR.PATCH şemasıdır.
- BranchSürüm Kontrolü, s. 2Git'te branch, bir özellik ya da düzeltme üzerinde, birleştirene kadar ana kodu etkilemeden çalışmanızı sağlayan bağımsız bir geliştirme hattıdır.
- GitSürüm Kontrolü, s. 10Git, dosyalardaki değişiklikleri zamanla izleyen ücretsiz, açık kaynaklı dağıtık sürüm kontrol sistemidir; iş birliğini ve hataları geri almayı kolaylaştırır.
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
- RepositorySürüm Kontrolü, s. 34Repository, bir projenin tüm dosyalarını ve sürüm kontrol sisteminin kaydettiği her değişikliğin eksiksiz geçmişini barındıran depolama alanıdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin