Como fazer Git ao meio

Vamos fingir que você está trabalhando com colaboradores em um projeto e, depois de um git pull, você percebe que alguns cukes / especificações não estão mais passando.

Bem, a boa notícia é que você pode facilmente encontrar o commit que introduziu essa falha usando git bisect .

Primeiro, você precisa estar em um repositório limpo .
Se você tiver alguma modificação local use o comando

$ git stash

Agora, podemos começar a bissecção!

$ git bisect start
$ git bisect bad

Vamos fingir que a revisão dca6dd7517 foi a última versão testada que era boa

$ git bisect good dca6dd7517
Bisecting: 13 revisions left to test after this (roughly 4 steps)

O git-bisect coloca você em um commit específico e você pode executar seus cukes / especificações para ver se esta revisão contém a falha que você está procurando e marcar a revisão como boa ou ruim

$ rspec
[...]
$ git bisect good
# or bad
Bisecting: 6 revisions left to test after this (roughly 3 steps)

E assim por diante até que não haja mais nenhuma etapa.
Você receberá esta mensagem

<revision> is the first bad commit

Agora você sabe qual commit é o culpado 🙂

Depois de terminar a bissecção, basta executar

$ git bisect reset

Por último mas não menos importante

A qualquer momento, você pode ver o progresso da bissecção

$ git bisect log

Você pode pular para marcar um commit específico como bom ou ruim digitando

$ git bisect skip

Se você escondeu suas alterações no início, não se esqueça de abri-lo

$ git stash pop