Git Hooks Nedir?
Git Hooks, aslında bir dizi betik (script) dosyasından oluşur. Bu dosyalar, Git’in yaptığı işlemleri otomatikleştirir veya özelleştirir. İş akışınıza entegre ederek kod kalitesini artırabilir ve geliştirme sürecini daha verimli hale getirebilirsiniz.
Git Hooks’un Temel Kullanımı
Her hook bir bash script şeklinde çalıştırılabilir. Bu scriptler, sizin belirlediğiniz işlemleri gerçekleştirmek için Git’in her hareketine yanıt verir.
Örneğin, bir commit yapmadan önce pre-commit hook’u devreye girebilir. Bu, kodu commit etmeden önce kodunuzun belirli kurallara uygun olup olmadığını kontrol etmenizi sağlar. Hadi bunu daha detaylı inceleyelim.
Pre-Commit Hook Örneği
Aşağıda pre-commit hook’unu nasıl kuracağınızı ve bir örnek vereceğiz:
1. `.git/hooks` dizinine gidin.
2. `pre-commit.sample` dosyasını bulun.
3. Dosyanın ismini `pre-commit` olarak değiştirin.
4. Dosyayı bir metin editörüyle açın ve aşağıdaki kodu ekleyin:
#!/bin/bash
# Bu dosya pre-commit hook'u
# Git commit işlemi öncesinde çalıştırılacak script
echo "Kod formatı kontrol ediliyor..."
# Örneğin, python dosyaları için yapabileceğiniz bir kontrol:
black --check .
if [ $? -ne 0 ]; then
echo "Kod formatı hatası tespit edildi! Lütfen kodu formatlayın."
exit 1
fi
Yukarıdaki script, her commit işleminden önce kodunuzu black (Python kod formatlayıcı) ile kontrol eder. Eğer format hatası varsa commit işlemi durdurulur ve kullanıcıya hata mesajı gösterilir.
Git Hooks ile Diğer İşlemler
#!/bin/bash
# Bu dosya post-commit hook'u
# Commit işleminden sonra çalıştırılacak script
echo "Testler çalıştırılıyor..."
npm test
if [ $? -ne 0 ]; then
echo "Testler başarısız oldu! Lütfen hataları düzeltin."
exit 1
fi
Yukarıdaki örnekte, her commit sonrasında npm test komutunu çalıştırarak testlerin geçip geçmediğini kontrol ediyoruz. Testler başarısız olursa commit işlemi geri alınır.
Git Hooks ile CI Entegrasyonu
#!/bin/bash
# Bu dosya pre-push hook'u
# Push işlemi öncesinde testlerin çalıştırılmasını sağlar
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 sayede push işleminden önce kodunuzun düzgün çalıştığından emin olabilir ve hatalı kodun ana depoya gitmesini engelleyebilirsiniz.
Git Hooks Kullanmanın Avantajları
- Hata Yapma Olasılığını Azaltır: Kodunuzu kontrol etmeden bir işlem yapmadığınız için hata yapma olasılığınız azalır.
- Zaman Kazandırır: Tekrar eden işlemleri otomatikleştirerek geliştiricinin zamanını daha verimli kullanmasını sağlar.
Sonuç
Artık Git Hooks’u kullanarak yazılım geliştirme sürecinizi otomatikleştirebilir ve daha verimli bir hale getirebilirsiniz!