commit-msg
- Git kursu
- İleri seviye
- Ders 23/56
- 4 dk
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 ;;
esacUygulama 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
# Mesajı oku
# Mesaj biçimini denetle
# Geçersizse hata döndürÖrnek çözüm
message=$(cat "$1")
case "$message" in
fix:*) exit 0 ;;
*) echo "Geçersiz commit mesajı"; exit 1 ;;
esacBeklenen çı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
#!/bin/sh
message=$(cat "____")
#!/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ı |