EMZETT.
Giriş yap

Git etiketleri, sürümler ve değişiklik günlüğü: sürümleri temiz yayımlamak

Kısaca: Etiketler (tags) belirli commit’leri bir sürüm olarak işaretler, sürümler (releases) bunları açıklamalar ve dosyalarla paketler ve bir değişiklik günlüğü (changelog) kullanıcılara neyin değiştiğini anlatır.

Biraz daha ayrıntılı: Bir yazılım sürümü, kodun benzersiz adlandırılmış bir durumudur. Bunun için Git etiketleri, sürüm numaraları (SemVer) ve sürüm notları kullanılır.

Ayrıntılı

Etiketler

git tag v1.4.0                       # hafif etiket
git tag -a v1.4.0 -m "Version 1.4.0" # açıklamalı etiket (yazar, tarih, iletiyle)
git push origin v1.4.0               # etiketi yayımla (etiketler otomatik itilmez)
git tag -l 'v1.*'                    # etiketleri listele
git checkout v1.4.0                  # bu duruma bak
git tag -d v1.4.0                    # yerelde sil

Etiketler değişmez işaretlerdir (yayımlandıktan sonra taşımayın). Sürümler için açıklamalı (ve mümkünse imzalı, -s) etiketler kullanın.

Sürüm numaraları

Anlamsal sürümleme: MAJOR.MINOR.PATCH (örneğin 2.3.1): uyumsuz değişiklikler için MAJOR, yeni, uyumlu özellikler için MINOR, hata düzeltmeleri için PATCH. Ön sürümler: 2.0.0-beta.1. Alternatif CalVer (2026.03). Numara etikette, paket dosyasında (package.json, pyproject.toml) ve sürümde görünür.

Sürümler ve değişiklik günlüğü

GitHub/GitLab’da bir sürüm (release), bir etiketten açıklama, indirme dosyaları (artifacts) ve otomatik üretilen notları olan bir sayfa oluşturur. Bir CHANGELOG.md (“Keep a Changelog” biçimi) sürüme göre Added, Changed, Deprecated, Removed, Fixed, Security olarak yapılandırılır ve geliştiricilere değil kullanıcılara hitap eder (commit listesini öylece yapıştırmayın). Conventional Commits ve araçlarla (release-please, semantic-release, changesets) sürümler ve değişiklik günlüğü otomatik üretilebilir.

Yöntem ve ipuçları

  1. Testler yeşil, sürümü yükseltin, değişiklik günlüğünü genişletin.
  2. Commit edin, etiketi koyun, push edin.
  3. CI artifact’leri derler (paketler, konteyner imajları) ve yayımlar (npm, PyPI, Docker registry), ideal olarak yeniden üretilebilir ve imzalı.
  4. Sürüm notlarını yazın, uyumsuz değişiklikleri açıkça vurgulayın ve geçiş notları verin.
  5. Hatalarda etiketi taşımak yerine yeni bir yama sürümü.

Web siteleri için commit başına bir dağıtım çoğunlukla yeter; başkalarının kurduğu kütüphaneler, uygulamalar ve araçlar için etiketler/sürümler önemlidir.

Ayrıca bak: Anlamsal sürümleme, Conventional Commits, CI/CD ardışık düzeni, README dosyası