Git Hooks, belirli Git olayları gerçekleştiğinde tetiklenen betiklerdir. Otomasyon ve kalite kontrol için kullanılır.
Hook dosyaları .git/hooks/ klasöründe bulunur. Varsayılan olarak .sample uzantılı örnek dosyalar içerir.
.git/hooks/pre-commit
.git/hooks/post-commit
| Hook Adı | Ne Zaman Çalışır? | Kullanım Örneği |
|---|---|---|
pre-commit |
Commit işleminden hemen önce | Kod format kontrolü, test çalıştırma |
commit-msg |
Commit mesajı girildikten sonra | Mesaj format denetimi |
post-commit |
Commit işleminden hemen sonra | Bildirim, loglama |
pre-push |
git push işleminden hemen önce |
Test veya lint çalıştırma |
#!/bin/sh
npm run lint
if [ $? -ne 0 ]; then
echo "Lint hataları var, commit iptal edildi."
exit 1
fi
Bu dosyayı
.git/hooks/pre-commitolarak kaydet ve çalıştırılabilir yap:
chmod +x .git/hooks/pre-commit
Node.js projelerinde Husky ile hooks daha yönetilebilir hale gelir:
npm install husky --save-dev
npx husky install
npx husky add .husky/pre-commit "npm test"
.git klasöründe kalır).python, node, vb.).