update
- Git kursu
- Uzman
- Ders 7/32
- 4 dk
update hook ile dal bazlı denetim öğrenirsin.
update hook nedir?
#!/bin/bash
refname="$1"
echo "$refname"Argümanlarla dal denetimi
refname="$1"
if [[ "$refname" == "refs/heads/main" ]]; then
exit 1
fiUygulama Ana dal güncellemesini reddet
Bir `update` hook betiği oluştur. İlk argümandaki referans adını `refname` değişkenine ata. Referans `refs/heads/main` ise hata mesajı yazdırıp çıkış kodu 1 ile bitir. Diğer dallarda güncellemeye izin ver.
Başlangıç kodu
# Referans adını al
# Dalı denetleÖrnek çözüm
#!/bin/bash
refname="$1"
if [[ "$refname" == "refs/heads/main" ]]; then
echo "Ana dal güncellemesi yasak" >&2
exit 1
fi
echo "Güncellemeye izin verildi"Beklenen çıktı
Güncellemeye izin verildi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 update hook'un pre-receive hook'tan temel farkı nedir?
- Push işlemi bittikten sonra çalışması
- Yalnızca yerel bilgisayarda çalışması
- Her referans güncellemesi için ayrı çalışması Doğru cevap
- Sadece dosya adlarını kontrol etmesi
Açıklama: `update`, her referans güncellemesini ayrı değerlendirir. Bu özellik dal bazlı kurallar yazmayı kolaylaştırır.
2 update hook argümanını al
#!/bin/bash
refname="$_____"____
#!/bin/bash
refname="$_____"1
Açıklama: İlk argüman `$1` ile alınır ve update hook'unda referans adını içerir.
3 update hook argümanlarını eşleştir
| Kavram | Anlamı |
|---|---|
$1 |
Referans adı |
$2 |
Eski nesne kimliği |
$3 |
Yeni nesne kimliği |
exit 1 |
Güncellemeyi reddeder |