Git Semantic Commit Nedir? Neden Kullanılır ve Nasıl Uygulanır?
Semantic Commit Nedir?
Kısaca açıklamak gerekirse, Semantic Commit; commit mesajlarını belirli bir formatta ve anlamlı bir şekilde yazma yaklaşımıdır. Bu yöntem, yapılan değişikliklerin türünü açıkça belirten bir yapı sunar.
Genellikle şu formata sahiptir:
Örnek:
Anahtar Kelimeler ve Anlamları
Semantic Commit kullanırken mesaj başına yazılan türler (types), yapılan değişikliğin niyetini belirtir:
feat
: Yeni bir özellik eklendi.fix
: Bir hata giderildi.docs
: Sadece dökümantasyonla ilgili değişiklik.style
: Kodun çalışma şeklini etkilemeyen biçimsel düzenlemeler.refactor
: Yeni bir özellik eklenmeden ya da bug fix yapılmadan kodun yeniden düzenlenmesi.perf
: Performans iyileştirmeleri.test
: Test kodları ile ilgili değişiklikler.chore
: Yapılandırma dosyaları gibi görevler, derleyici ayarları vs.
Neden Önemli?
Başta küçük bir alışkanlık gibi görünse de, semantic commit birçok konuda fark yaratır:
1. Anlamlı Git Logları
git log
çıktısında her bir satır neyin neden değiştiğini doğrudan anlatır. Ekip arkadaşınız veya siz, aylar sonra bile neyin neden yapıldığını anlamak için sadece commit mesajlarına göz atabilirsiniz.
2. Otomasyon İçin Altyapı
Semantic commit mesajları sayesinde automated changelog oluşturmak mümkün hale gelir. Örneğin, release
script’leri veya CI/CD pipeline’ları bu mesajlardan anlam çıkartarak versiyonlama yapabilir.
3. Standartlaştırılmış İletişim
Tüm ekip aynı formatta commit attığında, herkesin değişiklikleri anlaması kolaylaşır. Kimin ne yaptığını kavramak için dosyaları tek tek açmak gerekmez.
4. Versiyonlama İçin Temel Hazırlık
Eğer Conventional Commits sistemine bağlı kalınırsa, Semantic Versioning (SemVer) ile uyumlu sürüm yönetimi yapılabilir. Örneğin, feat
içeren bir commit minor
versiyonu artırırken, fix
bir patch
anlamına gelebilir.
Nasıl Uygulanır?
Semantic commit uygulamak için sadece bilinçli yazmak yeterli olsa da, bazı araçlar süreci kolaylaştırabilir.
Commitlint
commitlint
aracı, commit mesajlarınızı belirlediğiniz kurallara göre denetler. Hatalı mesajlara izin vermez. Genellikle Husky ile birlikte kullanılır.
.commitlintrc.json
:
Commitizen
Yeni başlayanlar için Commitizen
daha kullanıcı dostu bir araçtır. CLI arayüzü sayesinde doğru mesajı yazmanıza yardımcı olur.
Kullanımı:
Ardından size adım adım soru sorarak doğru commit formatını oluşturur.
Semantic Commit’e Geçerken Karşılaşılabilecek Sorunlar
Her alışkanlık gibi, semantic commit de başlangıçta zor gelebilir. “Her seferinde bu formatı mı yazacağım?” diye düşünebilirsiniz. Ancak birkaç haftalık uygulamadan sonra bu yapı refleks haline gelir. Ayrıca, doğru commit mesajı yazmak zaman kaybettirmez, aksine ileride zaman kazandırır.
Projelerde Uygulama Önerileri
Takım olarak semantic commit konusunda uzlaşın. Küçük projelerde bile bir standart oluşturmak ileride işinizi kolaylaştırır.
README veya CONTRIBUTING dosyasında commit formatını belirtin.
Kod review süreçlerinde commit mesajlarına da dikkat edin.
Otomasyon (CI/CD) araçlarına semantic commit desteği ekleyin.
Sonuç: Kod Kadar, Anlatım da Önemli
Yazılım geliştirme sadece fonksiyon üretmek değildir. Bir projenin okunabilirliği, sürdürülebilirliği ve büyümesi; kodun nasıl anlatıldığıyla da doğrudan ilişkilidir. Semantic commit, küçük bir alışkanlık gibi görünse de, büyük projelerde adeta hayat kurtarır. Sadece bugünün değil, gelecekteki ekibin de işini kolaylaştırır.