# Git Tag

Adres: https://softwaredictionary.org/tr/terimler/git-tag
Kategori: Sürüm Kontrolü
Son güncelleme: 2026-09-30
Türkçe karşılığı: etiket
Okunuşu: git teg

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 push` onları göndermez.
- Branch'lerin aksine tag'ler yeni commit'ler eklendiğinde hareket etmez.

## Örnek: Git tag oluşturmak, push etmek ve silmek

```bash
# 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.0
```

## Sı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.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
