CodeBlanks Logo Icon CodeBlanks

commit-msg

commit-msg hook ile mesaj doğrulamayı öğrenirsin.

commit-msg hook nedir?

commit-msg hook, Git commit mesajını oluşturmadan önce çalışır ve mesajı kontrol etmek için kullanılır. Git, commit mesajının dosya yolunu bu hook'a argüman olarak iletir. Betik bu dosyayı okuyarak mesajın belirli kurallara uyup uymadığını doğrulayabilir.

#!/bin/sh
message_file="$1"
cat "$message_file"

Commit mesajı biçimini doğrula

Commit mesajlarını belirli bir biçime zorlamak için commit-msg içinde mesaj dosyasını okuyabilirsin. Örneğin mesajın feat:, fix: veya docs: ile başlamasını isteyebilirsin. Uygun olmayan bir mesaj için sıfırdan farklı çıkış kodu döndürerek commit'i engellersin.

#!/bin/sh
message=$(cat "$1")
case "$message" in
  feat:*|fix:*|docs:*) exit 0 ;;
  *) echo "Geçersiz mesaj"; exit 1 ;;
esac

Uygulama Commit mesajı biçimini denetle

commit-msg için bir Shell betiği yaz. İlk argümandaki mesaj dosyasını cat ile oku. Mesaj fix: ile başlıyorsa başarılı çık, aksi durumda Geçersiz commit mesajı yazdırıp exit 1 kullan.

Başlangıç kodu

terminal
# Mesajı oku

# Mesaj biçimini denetle

# Geçersizse hata döndür

Örnek çözüm

terminal
message=$(cat "$1")
case "$message" in
  fix:*) exit 0 ;;
  *) echo "Geçersiz commit mesajı"; exit 1 ;;
esac

Beklenen çıktı

Geçersiz commit mesajı

Soru ve cevaplar

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

1 commit-msg hook hangi bilgiyi argüman olarak alır?

  • Aktif dalın tam geçmişini
  • Commit mesajının bulunduğu dosyanın yolunu Doğru cevap
  • Uzak deponun URL adresini
  • Son commit'in dosya listesini

Açıklama: Git, commit-msg hook'una commit mesajının geçici dosya yolunu ilk argüman olarak verir. Betik bu dosyayı okuyabilir.

2 Commit mesajı dosyasını oku

Soru
#!/bin/sh
message=$(cat "____")
Cevap
#!/bin/sh
message=$(cat "$1")

Açıklama: Git, commit-msg betiğine mesaj dosyasının yolunu ilk argüman olarak aktarır. $1 bu argümanı temsil eder.

3 commit-msg parçaları

Kavram Anlamı
commit-msg Mesaj öncesi çalışır
$1 Mesaj dosyasının yolu
cat Dosyanın içeriğini okur
feat: Yeni özellik mesajı

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