Git Hooks Nedir?
Git Hooks, kod yazarken sıkça tekrarladığınız bazı işleri otomatikleştirmenize yardımcı olur. Böylece hem zaman kazanırsınız hem de hataları en aza indirirsiniz.
Git Hooks Nerelerde Kullanılır?
1. Commit Öncesi (pre-commit): Commit işlemi yapılmadan önce kodunuzu kontrol eder. Hata varsa commit işlemi engellenebilir.
2. Commit Sonrası (post-commit): Commit işlemi tamamlandığında tetiklenir. Genellikle loglama veya bildirim gibi işlemler için kullanılır.
3. Push Öncesi (pre-push): Push işlemi gerçekleşmeden önce yapılacak işlemleri kontrol eder.
4. Merge Sonrası (post-merge): Merge işlemi gerçekleştikten sonra tetiklenir ve çeşitli işlemler için kullanılabilir.
Her bir hook, size işlerinizi kolaylaştıracak otomasyonlar kurma fırsatı sunar.
Git Hooks Kurulumu ve Yapılandırması
Örneğin, bir `pre-commit` hook'u ekleyelim. Bu hook, her commit öncesi kodunuzun formatını kontrol edecek. Öncelikle, `.git/hooks` dizininde `pre-commit` adında bir dosya oluşturun:
#!/bin/sh
# Pre-commit Hook: Kod formatını kontrol et
echo "Kod formatı kontrol ediliyor..."
# Kod formatını kontrol eden komut
# Burada örnek olarak 'eslint' kullanılabilir
eslint . --fix
if [ $? -ne 0 ]; then
echo "Kod formatı hatası! Commit yapamazsınız."
exit 1
fi
Bu basit script, commit işleminden önce kodunuzun formatını kontrol eder ve eğer format hatası varsa commit işlemini engeller. Böylece projenizdeki kodun her zaman aynı formatta kalmasını sağlarsınız.
Git Hooks ile Otomasyonu Güçlendirme
Aşağıda `pre-push` hook’unu nasıl kullanacağınızı gösteren bir örnek var:
#!/bin/sh
# Pre-push Hook: Testleri çalıştır
echo "Testler çalıştırılıyor..."
npm test
if [ $? -ne 0 ]; then
echo "Testler başarısız oldu! Push işlemi iptal edildi."
exit 1
fi
Bu script, push işlemi öncesinde testlerinizi çalıştırır ve herhangi bir test başarısız olursa push işlemini engeller. Böylece yalnızca geçerli testleri geçen kodları sunucuya göndermiş olursunuz.
Git Hooks ile Hata Payını Azaltın
Aşağıda, commit mesajlarının belirli bir düzene uygun olup olmadığını kontrol etmek için yazılmış bir `commit-msg` hook'u örneği:
#!/bin/sh
# Commit mesajını kontrol et
commit_regex="^(feat|fix|docs|style|refactor|test): .+"
error_msg="Commit mesajı uygun formatta değil. (feat|fix|docs|style|refactor|test): Açıklama olmalı."
if ! grep -qE "$commit_regex" "$1"; then
echo "$error_msg"
exit 1
fi
Bu script, commit mesajınızın belirli kurallara uygun olup olmadığını kontrol eder. Eğer kurallara uymazsa, commit işlemi yapılmaz. Bu sayede ekip içinde tutarlı ve anlaşılır commit mesajları kullanabilirsiniz.
Sonuç: Git Hooks ile Verimliliği Artırın
Unutmayın, Git Hooks size sadece otomasyonu sağlamaz, aynı zamanda projelerinizdeki kalitenin artmasına yardımcı olur. Artık Git Hooks kullanmanın ne kadar kolay olduğunu biliyorsunuz! Hadi, Git’in gücünden faydalanın ve otomasyonu hayatınıza sokun!