Passo a passo: Como usar git bisect para localizar um commit com bug

Git bisect é uma ferramenta que usa busca binária para encontrar rapidamente o commit que introduziu um bug em um repositório.

Como usar git bisect para encontrar um commit com bug?

Quando um bug aparece no código, pode ser difícil identificar qual commit causou o problema. O git bisect é uma ferramenta que ajuda a encontrar rapidamente o commit exato onde o bug foi introduzido, usando um processo de busca binária.

1. Iniciando o git bisect

Primeiro, inicie a sessão de busca com:

git bisect start

2. Definindo um commit bom e um commit ruim

Informe ao Git um commit onde o código estava funcionando corretamente (good) e um commit onde o bug já está presente (bad).

Por exemplo, se o commit atual contém o bug:

git bisect bad

E se você sabe que um commit mais antigo estava funcionando corretamente:

git bisect good 123abc

O Git agora selecionará um commit intermediário para teste.

3. Testando os commits sugeridos pelo Git

O Git verificará automaticamente um commit entre os marcados como “bom” e “ruim” e pedirá para testá-lo. Após testar, informe o resultado:

  • Se o commit ainda contém o bug:
git bisect bad
  • Se o bug não está presente:
git bisect good

O Git repetirá esse processo até encontrar o commit exato que introduziu o bug.

4. Finalizando a busca

Depois que o Git identificar o commit problemático, finalize a sessão do bisect com:

git bisect reset

Isso retornará o repositório ao estado original.

O git bisect é uma ferramenta essencial para depuração de código, especialmente em projetos grandes com muitos commits. Em vez de revisar manualmente centenas de commits, o bisect reduz o número de testes necessários ao aplicar uma busca binária.

Esse processo é muito útil para encontrar a introdução de regressões em código. Por exemplo, se um software começa a apresentar falhas após várias atualizações, o git bisect permite identificar rapidamente qual mudança causou o problema, economizando tempo na correção.

Algumas aplicações:

  • Identificar rapidamente qual commit introduziu um bug
  • Reduzir o tempo gasto na depuração de código
  • Facilitar a correção de regressões em projetos grandes
  • Aprimorar a qualidade do código ao rastrear mudanças problemáticas
  • Automatizar testes de commits para encontrar erros mais facilmente

Dicas para quem está começando

  • Antes de iniciar um bisect, faça um backup do código se necessário.
  • Use 'git bisect good' e 'git bisect bad' para classificar os commits corretamente.
  • Se cometer um erro ao marcar um commit, use 'git bisect reset' para recomeçar.
  • Teste cada commit da maneira mais simples possível para economizar tempo.
  • Após encontrar o commit com bug, analise o código para entender como ele afeta o projeto.

Contribuições de Ricardo Moura

Compartilhe este tutorial: Como usar git bisect para encontrar um commit com bug

Compartilhe este tutorial

Continue aprendendo:

Como fazer cherry-picking de commits específicos

Cherry-picking no Git permite aplicar um commit específico de outra branch sem precisar mesclar todas as alterações.

Tutorial anterior

Como configurar hooks no Git para automatizar tarefas

Hooks no Git permitem automatizar tarefas como validação de código, execução de testes e integração contínua durante operações do Git.

Próximo tutorial