CodeBlanks Logo Icon CodeBlanks

pre-commit

pre-commit hook ile commit öncesi kontrol öğrenirsin.

pre-commit hook nedir?

pre-commit hook, Git bir commit oluşturmadan hemen önce çalışır. Kod biçimi, boşluklar veya temel doğrulamalar gibi kontrolleri bu aşamada yapabilirsin. Hook başarısız bir çıkış koduyla tamamlanırsa Git commit işlemini durdurur.

#!/bin/sh
# Commit öncesi kontrol
if [ -f "ERROR.txt" ]; then
    echo "Kontrol başarısız"
    exit 1
fi

Doğrulama ve çıkış kodu

Bir hook betiği başarı durumunda genellikle 0, hata durumunda ise sıfırdan farklı bir çıkış kodu döndürür. exit 1 komutu kontrolün başarısız olduğunu Git'e bildirir. Böylece örneğin zorunlu bir kontrol geçilmediğinde commit oluşturulmasını engelleyebilirsin.

#!/bin/sh
if [ ! -f "README.md" ]; then
    echo "README eksik"
    exit 1
fi
exit 0

Bu kontrol, README dosyası bulunmadığında commit işlemini durdurur.

Uygulama Commit öncesi dosya kontrolü

Bir pre-commit betiği oluştur. README.md dosyası mevcut değilse hata mesajı yazdır ve exit 1 ile sonlandır. Dosya mevcutsa exit 0 kullan.

Başlangıç kodu

terminal
# README dosyasını kontrol et

# Eksikse hata döndür

# Varsa başarılı çık

Örnek çözüm

terminal
if [ ! -f "README.md" ]; then
    echo "README.md eksik"
    exit 1
fi
exit 0

Beklenen çıktı

README.md eksik

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 pre-commit hook hangi aşamada çalışır?

  • Uzak depoya push tamamlandıktan sonra
  • Depo ilk kez klonlandığında
  • Commit oluşturulmadan önce Doğru cevap
  • Commit başarıyla oluşturulduktan sonra

Açıklama: pre-commit, commit oluşturma işleminden önce tetiklenir ve başarısız olursa işlemi engelleyebilir.

2 Başarısız kontrolü bildir

Soru
#!/bin/sh
____
Cevap
#!/bin/sh
exit 1

Açıklama: <code>exit 1</code> betiği başarısız çıkış koduyla sonlandırır ve commit işleminin durmasını sağlar.

3 pre-commit bileşenleri

Kavram Anlamı
pre-commit Commit öncesi tetiklenir
exit 0 Başarılı çıkış
exit 1 Başarısız çıkış
README kontrolü Zorunlu dosyayı doğrular

İleri seviye bölümündeki tüm dersler