Bisect

İleri Seviye Git

Amanda Crawford-Adamo

Software and Data Engineer

Git bisect nedir?

Bir hatayı getiren commiti bulmak için ikili arama kullanan araç

Git Bisect Komutu

git bisect

Amaç

  1. Kötü commiti hızla bulmak
  2. Veri hatalarını ayıklamada kritik
  3. Kök neden analizini hızlandırır
İleri Seviye Git

Bisect - başlangıç

  1. Git bisect oturumunu başlatın

    git bisect start
    
  2. Mevcut durumu kötü olarak işaretleyin

    git bisect bad
    
  3. Son bilinen iyi durumu işaretleyin

    git bisect good <commit-hash>
    

İlk iki commitin yeşil renkle iyi olarak işaretlendiği commit grafiği. Son commit kırmızı ve bilinen kötü commit. Arada griyle gösterilen üç belirsiz commit var. Son iyi commit git bisect good ile, kötü commit git bisect bad ile işaretlenmiştir.

İleri Seviye Git

Bisect - arama

  1. Commit durumunu kötü olarak işaretler

    git bisect bad
    
  2. Commit durumunu iyi olarak işaretler

    git bisect good
    

İlk iki commitin yeşil renkle iyi olarak işaretlendiği commit grafiği. Son commit kırmızı ve bilinen kötü commit. İyi ve kötü commitler arasında, griyle gösterilen üç belirsiz commit var. Git bisect ikili arama kullanarak ortadaki commiti kontrol eder ve sonra sola ya da sağa bakar.

İleri Seviye Git

Bisect - otomatik arama

Otomatik bir test betiği çalıştırarak commit sürümünün iyi mi kötü mü olduğunu kontrol eder.

git bisect run <script_name>
  • Betik, testler geçtiyse 0 döndürmelidir.
  • Testler başarısızsa sıfırdan farklı bir sayı döndürmelidir.

İlk iki commitin yeşil renkle iyi olarak işaretlendiği commit grafiği. Son commit kırmızı ve bilinen kötü commit. İyi ve kötü commitler arasında, griyle gösterilen üç belirsiz commit var. Git bisect ikili arama kullanarak ortadaki commiti kontrol eder ve sonra sola ya da sağa bakar.

İleri Seviye Git

Bisect - sonuç

Git Bisect Çıktı Örneği

$ git log
b1a534f ilk kötü commit
commit b1a534f89l2c3d4e5f6g7h8i9j0k1l2m3n4o5p
Author: Jane Doe <[email protected]>
Date:   Thu Mar 14 14:30:00 2024 -0500

Update data transformation logic

Git bisect sürecinden çıkar ve mevcut HEAD'e döner

git bisect reset
İleri Seviye Git

Git bisect ne zaman kullanılır

Kullanım alanları

  1. Veri iş akışlarındaki regresyonları bulun
  2. Daha hızlı hata ayıklama için test betikleri kullanın

İpuçları

  • git bisect run <test-script> ile testleri otomatikleştirin
  • Süreci kolaylaştırmak için açıklayıcı commit mesajları kullanın
İleri Seviye Git

Hadi pratik yapalım!

İleri Seviye Git

Preparing Video For Download...