git bisect în Git

Identifică commit-ul exact care a introdus un bug printr-un algoritm automatizat de căutare binară.

Sintaxă comandă
git bisect <subcomandă> [opțiuni]

Ce face git bisect

Comanda git bisect este cel mai ingenios instrument de depanare din Git. Dacă aplicația funcționa perfect acum o lună (commit bun), dar astăzi eșuează (commit rău) și există sute de commit-uri la mijloc, git bisect împarte istoricul la jumătate prin căutare binară.

La fiecare pas te plasează pe un commit intermediar; tu testezi aplicația și marchezi commit-ul ca good sau bad. În doar 7-8 pași poți identifica cu certitudine matematică commit-ul exact care a stricat funcționalitatea.

Opțiuni și argumente

Opțiune / Parametru Descriere
start Pornește sesiunea de căutare binară.
bad [commit] Marchează un commit ca fiind defect (implicit commit-ul curent).
good [commit] Marchează un commit istoric ca fiind funcțional.
reset Încheie sesiunea de bisect și readuce depozitul pe ramura inițială.
run SCRIPT Automatizare completă: rulează un script de test la fiecare pas fără nicio intervenție manuală.

Exemple

Exemplul 1: Pornirea unei investigații bisect

Definim punctul bun și cel rău, iar Git calculează pașii rămași.

git bisect start
git bisect bad
git bisect good v1.0.0

Ieșire în terminal

Bisecting: 60 revisions left to test after this (roughly 6 steps)
[4a1b2c3d] Actualizeaza motorul de procesare date

Greșeli frecvente

  • Uitarea rulării comenzii git bisect reset la finalizarea investigației (lasă depozitul într-o stare temporară detașată).

Comenzi înrudite

  • git log: Afișează istoricul cronologic al commit-urilor, cu autor, dată, hash și mesaj.
  • git blame: Afișează autorul, data și hash-ul commit-ului care a modificat ultima dată fiecare rând dintr-un fișier.
  • git checkout: Comandă multifuncțională clasică pentru comutarea ramurilor sau restaurarea fișierelor din istoric.