CodeBlanks Logo Icon CodeBlanks

Hook

pre-commit hook ekleyip çalıştırılabilir yaparsın.

Git hook nedir?

Git hook, belirli Git işlemlerinden önce veya sonra otomatik çalışan bir betiktir. Hook dosyaları deponun .git/hooks dizininde bulunur. Örneğin pre-commit hook'u commit oluşturulmadan önce çalışır ve kod biçimi veya basit doğrulamalar yapabilir.

.git/hooks/pre-commit

Hook dosyasının çalıştırılabilir izinlere sahip olması gerekir.

Uygulama Pre-commit hook oluştur

.git/hooks/pre-commit dosyasına Bash betiği ekle. Betik çalıştığında ekrana Commit kontrol ediliyor yazsın ve başarılı sonuç kodu döndürsün. İlk satırda Bash yorumlayıcısını belirt.

Başlangıç kodu

terminal
# .git/hooks/pre-commit dosyasının içeriği

Örnek çözüm

terminal
#!/bin/bash
echo "Checking commit"
exit 0

Beklenen çıktı

Checking commit

Uygulama Hook dosyasını çalıştırılabilir yap

Oluşturduğun pre-commit dosyasına çalıştırma izni ver. Ardından dosyanın izinlerini kontrol etmek için ls -l komutunu kullan. Komut dizisinde önce izin değişikliği, sonra kontrol işlemi yer almalıdır.

Başlangıç kodu

terminal
# Hook dosyasına çalıştırma izni ver
# Dosya izinlerini görüntüle

Örnek çözüm

terminal
chmod +x .git/hooks/pre-commit
ls -l .git/hooks/pre-commit

Beklenen çıktı

Hook dosyasına çalıştırma izni verildi ve izinleri görüntülendi.

Soru ve cevaplar

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

1 Commit oluşturulmadan hemen önce çalışan hook hangisidir?

  • post-merge
  • pre-push
  • pre-commit Doğru cevap
  • post-commit

Açıklama: <code>pre-commit</code>, commit işlemi tamamlanmadan önce çalışır.

2 Hook dosyasına çalıştırma izni ver

Soru
chmod +x .git/hooks/pre-commit____
Cevap
chmod +x .git/hooks/pre-commit+x

Açıklama: <code>chmod +x</code>, dosyaya çalıştırma izni ekler. Böylece Git hook betiğini çalıştırabilir.

3 Hook kavramları

Kavram Anlamı
pre-commit Commit öncesinde çalışır
post-commit Commit sonrasında çalışır
.git/hooks Hook dosyalarının dizinidir
chmod +x Çalıştırma izni verir

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