git bisect
- Git kursu
- İleri seviye
- Ders 5/56
- 4 dk
git bisect ile hata commit'ini bulmayı öğrenirsin.
git bisect'e giriş
git bisect, bir hatanın hangi commit ile ortaya çıktığını bulmak için kullanılır. Git, bilinen çalışan bir commit ile hatanın bulunduğu commit arasındaki geçmişi ikili arama yöntemiyle inceler. Böylece commit'leri tek tek kontrol etmek yerine arama alanını hızlıca daraltırsın.
git bisect startArama sırasında Git sana belirli commit'leri kontrol etmeni söyler. Her kontrolün sonucunu bildirerek hatanın başladığı kaydı bulabilirsin.
Bisect aramasını başlatma
Önce git bisect start komutuyla aramayı başlatırsın. Ardından hatanın bulunduğu sürümü ve hatanın henüz bulunmadığı eski sürümü belirtirsin. Git bu iki referans arasındaki commit'leri inceleyerek aramayı yürütür.
git bisect start
git bisect bad
git bisect good HEAD~8Bu örnekte mevcut commit hatalı, sekiz commit önceki kayıt ise çalışır durumdadır.
Uygulama Bisect aramasını başlat ve inceleme yap
Bisect aramasını başlat. Ardından Git'in seçtiği mevcut commit'i kontrol etmek için commit kimliğini gösteren komutu çalıştır.
Başlangıç kodu
# Bisect aramasını başlat
# Seçili commit kimliğini gösterÖrnek çözüm
git bisect start
git rev-parse --short HEADBeklenen çıktı
Bisect session started. Current revision displayed.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Çok sayıda commit arasından hatayı ortaya çıkaran kaydı daha az kontrolle bulmak için hangi yöntem kullanılır?
- İkili arama Doğru cevap
- Dosya karşılaştırması
- Dal birleştirme
- Doğrusal arama
Açıklama: git bisect, commit aralığını her adımda daraltan ikili arama yöntemini kullanır.
2 Bisect aramasını başlat
git ____
git bisect start
Açıklama: Bisect aramasını başlatan doğru komut git bisect start şeklindedir.
3 Bisect temel kavramları
| Kavram | Anlamı |
|---|---|
git bisect |
Hata commit'ini araştırır |
İkili arama |
Aralığı adım adım daraltır |
Bug |
Hatalı davranış veya sorun |
Commit aralığı |
İncelenecek kayıtların bütünü |