Ricerca binaria nella storia
git bisect esegue una ricerca binaria sui commit per trovare quello che ha introdotto un bug. Dato un commit noto-buono e uno noto-cattivo, Git estrae i commit intermedi e chiede di testarli. Ogni risposta dimezza lo spazio di ricerca, quindi 1024 commit si risolvono in circa 10 passi.
Sessione manuale
git bisect start
git bisect bad
git bisect good v2.4.0
git bisect bad
git bisect reset
Termini personalizzati
git bisect start --term-old fast --term-new slow
git bisect slow
git bisect fast v2.4.0
Saltare commit non testabili
git bisect skip
git bisect skip <sha1> <sha2>
Visualizzazione
git bisect visualize
git bisect log > bisect.log
git bisect replay bisect.log
Restringere la ricerca
git bisect start -- src/parser/
Errori comuni
Dimenticare di marcare i punti iniziali. Marcare un commit in modo errato avvelena la ricerca; git bisect log seguito da editing e git bisect replay recupera.
First-parent bisecting
git bisect start --first-parent