Investigando bugs com Git
Git é mais que adicionar checkpoints para não perder trabalho. Um truque muito útil é saber como identificar qual commit introduziu bugs em seu projeto. Com vocês, git bisect
.
Apenas três comandos
Estou assumindo que você está na versão problemática do código num projeto git. Agora, você precisa:
-
Começar a investigação com
git bisect start
; -
Marcar a versão atual como problemática com
git bisect bad
: -
Marcar a última versão que funciona com
git bisect good <commit-hash>
:
bom, ruim, repete
Após a configuração inicial, o git cria uma lista de commits a partir dos marcadores bom
e ruim
setados no passo anterior. Então, um checkout para o primeiro commit da lista é executado.
Agora, tudo que você deve fazer é informar se o problema persiste no commit da vez. Se sim, execute git bisect bad
; se não, execute git bisect good
.
Por fim, depois de passar por todos os commits da lista, o git vai te mandar para o commit que introduziu o problema. Essa será a evidência que precisa para identificar e resolver o problema.
Para retornar ao commit original, antes de iniciar o bisect
, execute git bisect reset
.