Git bisect: encontrar o commit que quebrou seu aplicativo

Publicado em 2026-10-26 por frfrand

Busca binária da alteração que introduziu uma falha em produção

Git bisect: encontrar o commit que quebrou seu aplicativo

Sua aplicação funcionava há duas semanas e agora quebra ao criar uma reserva. Entraram quarenta commits desde então. Revisá-los um a um é chato e lento; git bisect usa busca binária para encontrar o primeiro que introduziu a falha.

A ideia é usá-lo para resolver um problema de verdade, não memorizar comandos porque ficam bem em uma captura. Vamos com o essencial, um exemplo de trabalho e os erros que mais convém evitar.

O que o Git bisect faz e quando serve

Marcas uma revisão conhecida como boa e outra como ruim. O Git te leva automaticamente a um commit intermediário; você testa e diz good ou bad. Repete até isolar um suspeito. Quanto mais reproduzível for o teste, mais confiável será o resultado.

Se você está aprendendo, teste primeiro em um repositório ou ambiente de teste. Se administra produção, documente o estado antes de executar qualquer coisa que altere arquivos, histórico ou dados. Isso permite entender o que mudou e recuperar-se se errar.

Exemplo para copiar e entender

git bisect start
git bisect bad HEAD
git bisect good v1.3.0
# Ejecutar el test de la reserva
git bisect good  # o: git bisect bad
# Al terminar
git bisect reset

Não copie a ordem final sem olhar o estado prévio. Os nomes de branches, host, usuário ou caminhos são exemplos; substitua-os pelos do seu projeto. Alguns comandos modificam arquivos ou fazem requisições que podem gravar dados.

Como eu usaria passo a passo

  1. Passo 1. Reproduza o erro com um teste ou um procedimento curto e repetível.
  2. Passo 2. Identifique um commit que falha e uma versão anterior que você saiba que funciona.
  3. Passo 3. Inicie o bisect, marque ambas as revisões e teste o commit para o qual o Git o levar.
  4. Passo 4. Marque cada revisão de acordo com o resultado; use git bisect skip se alguma não puder ser testada.
  5. Passo 5. Ao encontrar a alteração suspeita, volte para o branch original com git bisect reset e revise a causa.

Pare após cada passo e verifique o resultado. Se algo falhar, anote a mensagem exata antes de mudar de estratégia. Pular entre cinco soluções aleatórias costuma dificultar encontrar a causa real.

Um caso que pode acontecer com você trabalhando com clientes

Uma API FastAPI começou a duplicar reservas. Você tem um teste que verifica que duas requisições simultâneas não criem a mesma vaga. Com o bisect, você encontra em poucos testes a modificação que deixou de proteger essa operação.

O objetivo não é que «funcione uma vez», mas que você possa explicar como repeti-lo sem comprometer outra aplicação. Se houver dados ou credenciais de clientes, trabalhe com testes separados e acessos mínimos.

O erro que mais vejo

Se o erro depender de dados de produção ou de uma API externa instável, o teste pode dar resultados falsos. Prepare fixtures ou mocks estáveis. Não execute migrações destrutivas enquanto o bisect percorre commits antigos.

Uma regra simples: se você não puder explicar o que o comando fará no seu código ou servidor, consulte primeiro a ajuda oficial. Assim, você evita confundir uma solução rápida com um novo problema.

Onde entra o ArduMaker?

O hash de cada implantação no ArduMaker pode ajudar a delimitar quando um incidente começou. Recupere os logs e associe o primeiro erro a um intervalo de commits para acelerar o bisect.

Por exemplo, você pode implantar de um repositório Git para um VPS, associar um domínio HTTPS e administrar serviços e bancos de dados no mesmo ambiente. O painel reduz tarefas repetitivas de infraestrutura, mas não substitui o Git, os testes nem a revisão de permissões do projeto.

Perguntas rápidas antes de aplicá-lo

Isso altera a produção? Depende de onde você executa a ação. Teste localmente primeiro, identifique o commit ou serviço afetado e prepare um plano de recuperação.

Como comprovar que deu certo? Não fique apenas com a ausência de mensagens de erro: verifique o status, execute um teste funcional e confira os logs ou o histórico correspondente.

Vale a pena automatizar? Se for repetível e tiver resultados verificáveis, sim. Mas a automação deve falhar de forma clara e não esconder erros ou credenciais.

Para ampliar

Resumo: a ferramenta útil não é a que tem mais opções, mas sim a que permite entender o que mudou, verificá-lo e continuar trabalhando sem surpresas.

  • Git
  • Tutorial
  • ArduMaker

Continuar lendo

Todos os artigos · Planos VPS