Bisect

Git avansat

Amanda Crawford-Adamo

Software and Data Engineer

Ce este git bisect?

Un instrument care folosește căutarea binară pentru a identifica commit-ul care a introdus un bug

Comanda Git Bisect

git bisect

Scop

  1. Identificarea rapidă a commit-ului defect
  2. Esențial pentru depanarea datelor
  3. Accelerează analiza cauzei principale
Git avansat

Bisect - inițiere

  1. Inițierea unei sesiuni git bisect

    git bisect start
    
  2. Marcarea stării curente ca defectă

    git bisect bad
    
  3. Marcarea ultimei stări cunoscute ca bună

    git bisect good <commit-hash>
    

Grafic al commit-urilor care arată primele două ca bune, marcate cu verde. Ultimul commit este roșu, indicând că este commit-ul defect cunoscut. Între commit-urile bune și cel defect există trei commit-uri al căror statut este necunoscut, marcate cu gri. Ultimul commit bun este marcat cu git bisect good, iar cel defect cu git bisect bad.

Git avansat

Bisect - căutare

  1. Marchează starea commit-ului ca defectă

    git bisect bad
    
  2. Marchează starea commit-ului ca bună

    git bisect good
    

Grafic al commit-urilor care arată primele două ca bune, marcate cu verde. Ultimul commit este roșu, indicând că este commit-ul defect cunoscut. Între commit-urile bune și cel defect există trei commit-uri al căror statut este necunoscut, marcate cu gri. Git bisect folosește căutarea binară, începând cu commit-ul din mijloc, apoi verifică cel din stânga sau din dreapta.

Git avansat

Bisect - căutare automată

Verifică dacă versiunea unui commit este bună sau defectă, rulând un script de test automat.

git bisect run <script_name>
  • Scriptul trebuie să returneze 0 dacă testele au trecut.
  • Dacă testele eșuează, trebuie să returneze un număr diferit de zero.

Grafic al commit-urilor care arată primele două ca bune, marcate cu verde. Ultimul commit este roșu, indicând că este commit-ul defect cunoscut. Între commit-urile bune și cel defect există trei commit-uri al căror statut este necunoscut, marcate cu gri. Git bisect folosește căutarea binară, începând cu commit-ul din mijloc, apoi verifică cel din stânga sau din dreapta.

Git avansat

Bisect - rezultat

Exemplu de ieșire Git Bisect

$ git log
b1a534f is the first bad commit
commit b1a534f89l2c3d4e5f6g7h8i9j0k1l2m3n4o5p
Author: Jane Doe <[email protected]>
Date:   Thu Mar 14 14:30:00 2024 -0500

Update data transformation logic

Încheie procesul de bisecție și revine la HEAD-ul curent

git bisect reset
Git avansat

Când se utilizează git bisect

Cazuri de utilizare

  1. Identificarea regresiilor în fluxurile de date
  2. Utilizarea scripturilor de test pentru depanare mai rapidă

Sfaturi

  • Automatizați testarea cu git bisect run <test-script>
  • Folosiți mesaje de commit descriptive pentru a facilita procesul
Git avansat

Să exersăm!

Git avansat

Preparing Video For Download...