Git Hooks'a Giriş: Kodunuzu Kontrol Altına Alın
Git, yazılım geliştirme dünyasında vazgeçilmez bir araç. Hepimiz, kodlarımızı versiyonlamak ve takım olarak uyum içinde çalışmak için Git'i kullanıyoruz. Ama biraz daha derinlere inmek, işimizi kolaylaştırmak ve daha verimli hale gelmek mümkün! İşte burada devreye *Git Hooks* giriyor.
Git Hooks, git komutları tetiklendiğinde çalışan özel betiklerdir. Bu betikler, bir komutun ne zaman çalıştığına göre değişiklik yapmanıza imkan tanır. Örneğin, commit yapmadan önce dosyalarınızda belirli bir kontrol gerçekleştirebilir, ya da push işlemi öncesi kodunuzu otomatik olarak test edebilirsiniz. Bu yazımızda Git Hooks'un temellerini öğrenecek ve kullanımını detaylı bir şekilde anlatacağım.
Git Hooks Ne İşe Yarar?
Git Hooks, yazılım geliştirme süreçlerinde çok güçlü bir araçtır. Örneğin, *pre-commit hook* kullanarak commit işlemi yapmadan önce dosyalarınızı kontrol edebilir, hatalı bir kodu önceden engelleyebilirsiniz. Ya da *post-commit hook* ile commit sonrasında belirli işlemleri gerçekleştirebilirsiniz. Git Hooks sayesinde daha güvenli, daha verimli ve hatasız bir geliştirme süreci elde edebilirsiniz.
Git Hooks Nasıl Kurulur?
Git Hooks kullanmak oldukça basittir. Git, her proje için `.git/hooks` klasörünü otomatik olarak oluşturur ve burada çeşitli şablon dosyaları bulunur. Bu şablonları kullanarak işinize yarayan bir hook'u kolayca oluşturabilirsiniz. Aşağıda Git Hooks kullanımına dair basit bir örnekle başlayalım.
Örnek: Commit Öncesi Dosya Kontrolü
Diyelim ki bir projede belirli kurallar doğrultusunda kod yazıyoruz ve her commit öncesi dosyalarımızın stilini kontrol etmek istiyoruz. Git, bunun için *pre-commit hook* kullanmamıza olanak tanır.
İlk olarak, `.git/hooks` klasöründe bulunan `pre-commit.sample` dosyasını `pre-commit` olarak yeniden adlandırıyoruz. Ardından dosyanın içine aşağıdaki gibi bir komut ekliyoruz:
#!/bin/sh
# Dosya stili kontrolü
if ! grep -q "console.log" "$1"; then
echo "Kodda 'console.log' bulunmamalıdır!"
exit 1
fi
Bu kod, commit işleminden önce dosyada `console.log` olup olmadığını kontrol eder. Eğer varsa, commit işlemi başarısız olur ve kullanıcıya hata mesajı verir.
Git Hooks'un Popüler Türleri
Git Hooks'un birçok farklı türü vardır. Bunlardan bazıları:
- pre-commit: Commit işlemi öncesi çalıştırılır. Kodu kontrol etmek, testleri çalıştırmak için kullanılır.
- commit-msg: Commit mesajının doğruluğunu kontrol etmek için kullanılır.
- post-commit: Commit işlemi sonrasında çalıştırılır. Genellikle log yazmak, bildirim göndermek gibi işlemler için kullanılır.
- pre-push: Push işleminden önce çalıştırılır. Kodu test etmek veya doğrulamak için kullanılır.
- post-merge: Birleştirme işlemi sonrasında çalıştırılır.
Git Hooks'un bu türleri, sürecinizi özelleştirmenize yardımcı olabilir. İhtiyacınıza göre farklı kombinasyonlar oluşturabilirsiniz.
Git Hooks ile Test ve CI Entegrasyonu
Git Hooks, sürekli entegrasyon (CI) ve test süreçlerini yönetmek için mükemmel bir araçtır. Örneğin, *pre-push* hook'u ile her push işleminden önce otomatik testler çalıştırabilir ve testler başarılı olmadıkça kodunuzu push edemezsiniz. Böylece kodunuzun her zaman temiz ve çalışır durumda kalmasını sağlayabilirsiniz.
İşte pre-push hook için basit bir test örneği:
#!/bin/sh
# Otomatik test çalıştırma
npm test
if [ $? -ne 0 ]; then
echo "Testler başarısız oldu. Push işlemi iptal ediliyor."
exit 1
fi
Bu kod, push işleminden önce `npm test` komutunu çalıştırır ve testlerin başarısız olması durumunda push işlemine izin vermez.
Sonuç: Git Hooks ile Daha Verimli Bir Geliştirme Süreci
Git Hooks, yazılım geliştirme sürecinizde birçok hatayı önleyebilir ve kod kalitesini artırabilir. Commit'ler, push'lar ve merge'ler gibi temel işlemlerin öncesinde ve sonrasında otomatik testler, kontroller yaparak işinizi çok daha verimli hale getirebilirsiniz. Herhangi bir hatalı kodun erkenden tespit edilmesi, yazılım geliştirme süreçlerinde zaman kazandırır ve kaliteyi artırır.
Git Hooks ile projelerinizi çok daha temiz ve verimli hale getirebilirsiniz. Kendi iş akışınıza uygun olan hook'ları belirleyerek, yazılım geliştirme sürecinde otomasyonu artırabilir ve hata risklerini azaltabilirsiniz.
Eğer Git ile yeni tanışıyorsanız, Git Hooks'u kullanmaya başlamak size pek çok avantaj sağlayacaktır. Hem projelerinizdeki hataları önceden görüp engellemenizi hem de sürecinizi çok daha verimli hale getirmenizi sağlar.