Git Hooks Nedir?
Git Hooks, Git'in sağladığı otomasyon araçlarıdır. Başka bir deyişle, Git üzerinde bir işlem gerçekleştirdiğinizde, belirli bir "hook" tetiklenir ve bu tetikleme sonucunda bir dizi işlem otomatik olarak yapılır. Örneğin, bir commit yapmadan önce belirli testlerin çalışmasını isteyebilirsiniz ya da bir push işlemi gerçekleştirmeden önce, projenizin stil kurallarına uygunluğunu kontrol edebilirsiniz. İşte tam bu noktada Git Hooks devreye girer.
Git Hooks, genellikle iki kategoride işler:
1. Client-side hooks: Bu tür hook'lar, yerel depolarda çalışan komutlar için geçerlidir. Örneğin, commit yapmadan önce çalışacak bir hook oluşturabilirsiniz.
2. Server-side hooks: Bu tür hook'lar ise sunucuda çalışan komutlar için geçerlidir. Bir push işlemi sonrası tetiklenebilirler.
Git Hooks Nerede Bulunur?
Git Hooks, projedeki `.git/hooks` klasöründe bulunur. Bu klasörde, farklı Git işlemleriyle ilişkilendirilmiş bir dizi örnek hook dosyası yer alır. Örneğin, `pre-commit`, `post-commit`, `pre-push` gibi dosyalar bu klasördeki temel hook'lar arasında yer alır.
Ancak, dikkat etmeniz gereken önemli bir şey var: Bu dosyalar, örnek dosyalar olduğu için çalıştırılabilir durumda değillerdir. Yani bu dosyaları kullanabilmek için, `.sample` uzantısını kaldırıp, uygun bir şekilde düzenlemeniz gerekir.
Git Hooks Kullanmak İçin Adımlar
Git Hooks kullanmak için atmanız gereken birkaç basit adım var. Hadi şimdi, adım adım nasıl kullanabileceğinizi görelim:
1. Git Hooks Klasörüne Git
Öncelikle, Git projenizin ana dizinine gidin ve `.git/hooks` klasörüne erişin. Burada birçok farklı hook dosyası göreceksiniz.
2. Hook Dosyasını Düzenleyin
Örneğin, `pre-commit` hook'u üzerinde çalışmak istiyorsanız, bu dosyayı açın ve uygun komutları yazın. Bu dosya, commit işlemi gerçekleştirilmeden önce çalışacak olan script'leri içerir.
3. Kodunuzu Yazın
Hook dosyasına ihtiyacınız olan komutları yazın. Diyelim ki, commit yapmadan önce bir test çalıştırmak istiyorsunuz. İşte bu noktada, `pre-commit` hook dosyasına şu şekilde bir kod yazabilirsiniz:
kopyala#!/bin/sh # Test çalıştırmak için bir komut npm test if [ $? -ne 0 ]; then echo "Testler başarısız, commit işlemi iptal edildi." exit 1 fi
Yukarıdaki kod, testlerin başarılı olup olmadığını kontrol eder ve testler başarısızsa commit işlemine engel olur.
4. Hook'u Etkinleştirin
Dosyanızda gerekli düzenlemeleri yaptıktan sonra, hook dosyasını kaydedin ve çalıştırılabilir hale getirin. Bu işlemi yapmak için terminal üzerinden şu komutu yazabilirsiniz:
kopyalachmod +x .git/hooks/pre-commit
5. Test Edin
Son olarak, commit yapmayı deneyin. Eğer testler başarısız olursa, commit işlemi iptal edilir ve size hata mesajı gösterilir.
En Popüler Git Hooks
Git, bir dizi farklı hook ile birlikte gelir. İşte bazı popüler Git Hooks örnekleri:
1. pre-commit: Commit işleminden önce çalışır. Genellikle testlerin çalıştırılması veya stil denetimlerinin yapılması gibi işlemler için kullanılır.
2. commit-msg: Commit mesajının doğruluğunu kontrol etmek için kullanılır. Örneğin, commit mesajı belirli bir formatta olmalıdır gibi kurallar koyabilirsiniz.
3. pre-push: Push işleminden önce çalışır. Bu hook, genellikle testlerin tüm depoya gönderilmeden önce çalıştırılması için kullanılır.
4. post-merge: Birleştirme (merge) işleminden sonra çalışır. Bu, örneğin bağımlılıkların yeniden yüklenmesi gerektiğinde kullanılabilir.
Git Hooks ile İş Akışınızı İyileştirin
Git Hooks, yazılım geliştirme süreçlerinizi büyük ölçüde iyileştirebilir. Bu araçlar, tekrarlayan görevleri otomatikleştirerek zamandan tasarruf sağlar ve hata payını en aza indirir. Örneğin, bir kod stil kontrolü veya birim testlerinin her commit öncesinde yapılması, yazılım kalitesini önemli ölçüde artırabilir. Ayrıca, Git Hooks sayesinde, ekip arkadaşlarınızla aynı yazılım geliştirme standartlarını benimseyerek, daha tutarlı bir kod tabanı oluşturabilirsiniz.
Sonuç
Git Hooks, yazılım geliştirme iş akışınızı daha verimli ve düzenli hale getirebilecek güçlü bir araçtır. Her geliştirici, projesinde Git Hooks kullanarak testler, stil denetimleri veya başka otomatik işlemleri devreye sokabilir. Unutmayın, her Git projesi, kendi iş akışına göre özelleştirilebilir, bu yüzden ihtiyacınıza göre Git Hooks'u şekillendirebilirsiniz.
Git Hooks ile ilgili daha fazla bilgi ve pratik örnekler için yazılımlarınızda hemen deneyin ve geliştirme sürecinizin ne kadar kolaylaştığını görün!