Git Hooks Nedir ve Nasıl Kullanılır?

Bu blog yazısı, Git Hooks ile yazılım geliştirme süreçlerini nasıl daha verimli ve otomatik hale getirebileceğinizi anlatan detaylı bir rehberdir. Git Hooks kullanmanın avantajları ve örnek kodlarla nasıl işlediği açıklanmıştır.

BFS

Git, yazılım geliştiricilerinin hayatını kolaylaştıran güçlü bir araçtır. Ancak her zaman daha fazlası vardır! Git Hooks, yazılımcıların projelerine ekstra işlevsellik ve otomasyon katmalarını sağlayan harika bir özelliktir. Peki, Git Hooks nedir ve nasıl kullanılır? Hadi, gitmeye hazır mısınız?

Git Hooks’a Giriş: Bir Nedir Bu Hooks?

Git, kodunuzu versiyonlamak için harika bir araç olabilir, ancak bazen bir şeylerin otomatik olarak yapılmasını istemek, size zaman kazandırabilir. Git Hooks, tam da burada devreye girer! Git, belirli bir işlem gerçekleştiğinde tetiklenen bir dizi “hook” (kanca) sunar. Bu, bir commit yapmadan önce veya bir push işleminden önce çalıştırılacak betikler (scriptler) yazmanıza olanak tanır.

Git Hooks Nasıl Çalışır?

Git Hooks, Git deposundaki `.git/hooks` dizininde yer alır. Bu dizin içinde her biri belirli bir Git komutuyla tetiklenen, adlandırılmış bir dizi dosya bulursunuz. Örneğin, commit yapmak istediğinizde çalışacak bir hook dosyası, `pre-commit` olarak adlandırılmıştır.

Bu dosyaların her biri, tetiklendiğinde çalışacak bir shell script’i içerir. Yazdığınız bu script’ler, Git işlemi gerçekleşmeden önce veya sonra belirli işlemleri yapmanıza olanak tanır.

Git Hooks Kullanım Örnekleri

Şimdi, Git Hooks’un hayatınızı nasıl kolaylaştırabileceğini daha iyi anlayabilmek için birkaç örnek üzerinden gidelim.

# 1. Pre-Commit Hook ile Kod Kalitesini Artırın

Bazen, kodu commit etmeden önce belirli kurallara uymasını isteyebilirsiniz. Örneğin, bir kod formatlama aracı çalıştırmak veya belirli testlerin geçip geçmediğini kontrol etmek isteyebilirsiniz. Bunun için `pre-commit` hook kullanabilirsiniz. İşte nasıl yapılacağı:

İlk adım olarak, `.git/hooks` dizinindeki `pre-commit.sample` dosyasını `pre-commit` olarak yeniden adlandırın. Sonrasında, dosyaya aşağıdaki gibi bir kod ekleyin:


#!/bin/sh
# Kod formatını kontrol et
npm run lint
if [ $? -ne 0 ]; then
  echo "Kod formatı hatası bulunuyor. Lütfen düzeltin."
  exit 1
fi


Bu script, commit işleminden önce `npm run lint` komutunu çalıştıracak ve format hatası varsa commit yapılmasını engelleyecektir.

# 2. Pre-Push Hook ile Testleri Çalıştırın

Her commit yapıldığında testlerinizi çalıştırmak çok zaman alabilir. Ancak her push öncesinde testlerinizi çalıştırarak, uzak depoya yalnızca testleri geçmiş kodu gönderebilirsiniz. İşte `pre-push` hook kullanarak bunu yapabilirsiniz:


#!/bin/sh
# Testleri çalıştır
npm run test
if [ $? -ne 0 ]; then
  echo "Testler başarısız oldu. Push işlemi iptal ediliyor."
  exit 1
fi


Bu script, push işlemi öncesinde testlerin geçip geçmediğini kontrol eder. Eğer testler başarısız olursa, push işlemine izin verilmez.

# 3. Commit Mesajlarını Standartlaştırma

Bazı projelerde, commit mesajları belirli bir formata uymalıdır. Örneğin, her commit mesajının başında bir “tip” (feat, fix, docs, vb.) olmalı. `commit-msg` hook’unu kullanarak bu kurallara uyulup uyulmadığını kontrol edebilirsiniz. İşte nasıl:


#!/bin/sh
# Commit mesajını kontrol et
commit_msg=$(cat $1)
if [[ ! "$commit_msg" =~ ^(feat|fix|docs): ]]; then
  echo "Commit mesajı geçersiz! Mesaj şu formatta olmalı: feat: Yeni özellik ekle"
  exit 1
fi


Bu script, commit mesajlarının `feat`, `fix` veya `docs` ile başlamasını zorunlu kılar. Eğer format doğru değilse, commit işlemi iptal edilir.

Git Hooks Kullanırken Dikkat Edilmesi Gerekenler

Git Hooks güçlü bir araçtır ancak dikkat edilmesi gereken birkaç şey vardır. İlk olarak, `.git/hooks` dizinindeki dosyalar genellikle sürüm kontrolüne dahil edilmez. Yani, bir başkasıyla çalışıyorsanız, bu hook’ların projede ortak şekilde kullanılabilmesi için, hook betiklerini projeye dahil etmek için farklı bir yol (örneğin bir `hooks` klasörü) kullanmanız gerekebilir.

Ayrıca, her hook dosyasının doğru şekilde çalışabilmesi için uygun izinlere sahip olması gerektiğini unutmayın. `chmod +x .git/hooks/pre-commit` gibi komutlarla dosyaları çalıştırılabilir hale getirebilirsiniz.

Git Hooks’un Gücü

Git Hooks, küçük bir başlangıçtır ancak büyük bir fark yaratabilir. Kod kalitesini arttırabilir, testleri her adımda çalıştırabilir ve ekip içindeki iş akışını çok daha verimli hale getirebilirsiniz. Birçok yazılımcı Git’in sunduğu bu güçlü araçları yeterince kullanmıyor, fakat bir kez kullanmaya başladığınızda vazgeçmek zorlaşır. Git Hooks ile, yazılım geliştirme sürecinizi daha da pürüzsüz hale getirebilirsiniz.

Başka bir deyişle: Git Hooks, yazılım geliştirmede otomasyonu sağlamak için mükemmel bir araçtır. Bu araçları etkili bir şekilde kullanarak, kodunuzun kalitesini artırabilir, daha temiz ve hatasız bir yazılım geliştirme süreci oluşturabilirsiniz.

İlgili Yazılar

Benzer konularda diğer yazılarımız

Modern Yazılım Geliştirme Süreçlerinde Yapay Zeka ve Otomasyonun Rolü: 2025’te Yeni Başlangıçlar

Yazılım geliştirme dünyası hızla evriliyor. 2025 yılına adım attığımızda, bu süreçte yapay zeka ve otomasyonun rolü hiç olmadığı kadar önemli hale geldi. Geçmişte yazılım geliştirme yalnızca kod yazmak ve sistemleri test etmekle sınırlıydı. Ancak bugünün...

Yazılım Geliştiriciler İçin Verimli Çalışma Alanı Oluşturmanın İpuçları: En İyi Araçlar ve Yöntemler

Verimli Bir Çalışma Alanı Neden Önemlidir?Yazılım geliştirici olmanın zorluklarından biri de sürekli odaklanmış ve üretken olabilmektir. Bir geliştirici olarak, işlerinizin çoğunu bilgisayar başında geçirirsiniz ve bu süre zarfında verimli bir çalışma...

Kodunuzu Temiz Tutun: Yazılımda 'Yavaş Kodu' Tespit Etmenin 7 Etkili Yolu

Yazılım geliştirme dünyasında zamanın ne kadar kıymetli olduğunu hepimiz biliyoruz. Yazdığınız kodun hızlı ve verimli olması, projelerinizi başarılı kılmanın anahtarıdır. Ama ne yazık ki, çoğu zaman kodu hızlı yazmak uğruna temizliği ihmal edebiliriz....