Git Hooks Nedir?
Örneğin, commit yapmadan önce bir test çalıştırabilir veya push işlemi sırasında kodun belirli kurallara uygun olup olmadığını kontrol edebilirsiniz. Böylece, hatalı kodların projeye eklenmesini engelleyebilir, iş akışınızı çok daha düzenli hale getirebilirsiniz.
Git Hooks Ne İşe Yarar?
- pre-commit: Commit işleminden önce çalışır. Genellikle kod formatı ve statik analiz gibi işlemler için kullanılır.
- commit-msg: Commit mesajının doğruluğunu kontrol eder. Bu hook, belirli bir formatta commit mesajları yazmanızı sağlayabilir.
- pre-push: Push işlemi öncesi çalışır. Kodunuzu uzaktaki depoya göndermeden önce test etmek için kullanılır.
Git Hooks Nasıl Kullanılır?
1. Git Hooks Dizini
Git, proje dizininizde gizli bir `.git` klasörü içinde `hooks` adlı bir alt klasör oluşturur. Burada, her biri farklı bir Git işlemi için kullanılabilecek örnek hook’lar bulunur. Bu dizinde bulunan her hook, varsayılan olarak bir şablon dosyası olarak gelir. Örneğin `pre-commit.sample` dosyasını görebilirsiniz.
2. Bir Hook Eklemek
Örneğin, bir `pre-commit` hook’u eklemek istiyorsunuz. Bunun için `.git/hooks` dizinine gidin ve `pre-commit.sample` dosyasını `pre-commit` olarak yeniden adlandırın. Bu dosya artık her commit işleminden önce çalışacak bir script olacak.
3. Hook İçeriğini Yazmak
Hook’lar genellikle bash script’leri olarak yazılır. `pre-commit` dosyasına şu şekilde bir script ekleyebilirsiniz:
#!/bin/sh
# Kodun formatını kontrol et
npm run lint
if [ $? -ne 0 ]; then
echo "Kod formatı hatalı. Lütfen düzeltin!"
exit 1
fi
Bu örnekte, `pre-commit` hook’u, commit işleminden önce `npm run lint` komutunu çalıştırır ve eğer format hatası varsa commit’i engeller.
4. Hook’u Aktif Etmek
Bir hook’u aktif etmek için, script dosyasına yürütme izni vermeniz gerekecek. Bunu yapmak için şu komutu kullanabilirsiniz:
chmod +x .git/hooks/pre-commit
Bu, script’in çalıştırılabilir olmasını sağlar. Artık her commit yaptığınızda, yazdığınız `pre-commit` hook’u tetiklenecektir.
En Popüler Git Hooks
1. pre-commit: Commit öncesi işlemler yapar. Genelde kod formatı denetimi ve test çalıştırma için kullanılır.
2. commit-msg: Commit mesajının doğru formatta olup olmadığını kontrol eder. Bu hook, takımınızın belirli kurallarına uymayan commit mesajlarının önüne geçer.
3. post-merge: Merge işlemi sonrası tetiklenir. Genellikle gerekli testlerin çalıştırılması için kullanılır.
4. pre-push: Push işlemi öncesi tetiklenir ve testlerin geçip geçmediğini kontrol eder. Bu, özellikle CI/CD süreçlerinde faydalıdır.
Git Hooks ile Süreçlerinizi Otomatikleştirin
Git Hooks Kullanmanın Faydaları
- Hata Tespiti: Kodunuzda hata olasılığı, işlemler otomatikleştirilerek çok daha düşük olur.
- Zaman Kazanımı: Kendi başınıza manuel testler ve kontroller yapmanıza gerek kalmaz.
- Standartlaştırma: Kodunuzu her zaman belirli bir formatta tutarak ekip içi uyumu sağlar.
Git Hooks, yazılım geliştirme sürecinde ciddi anlamda zaman kazandıran ve işinizi kolaylaştıran bir araçtır. O yüzden hemen Git projenize entegre ederek bu avantajlardan faydalanabilirsiniz.