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.