Por favor, entenda, não estou perguntando como usar git bisect start
. Há bastante documentação me dizendo para iniciar uma sessão bisect com um git bisect start
comando. O que parece estar faltando é alguma explicação do que fazer isso realmente faz.
Para ser claro, eu sei que git bisect start
tem opções que podem ser passadas para ele que fazem coisas. Só estou perguntando sobre o que ele faz quando você segue exemplos que não passam nada mais.
Minha pergunta principal é sobre em que estado ou modo git bisect start
nos coloca. Aqui estão algumas outras perguntas que pretendem apenas ilustrar a natureza desta pergunta:
- Que estado realmente muda por causa do
git bisect start
comando? Existe alguma consulta que eu possa executar que me diga se estamos nesse estado? - Por que esse estado é necessário? Ele é mesmo necessário?
- Quais comandos não estão disponíveis enquanto estiver neste estado? Quais comandos estão disponíveis somente quando estiver nele?
- A cerimônia git bisect parece terminar com
git bisect reset
. Isso nos tira desse estado? - Isso me diz que
rm -v .git/BISECT_*
limpa os arquivos que o bisect cria. Esses arquivos são a única coisa que coloca o git nesse estado de bisect?
Toda a documentação que estou encontrando apenas me diz para começar o bisect git bisect start
sem me dizer o porquê.
git bisect start
coloca o Git no modo bisect . Ele mantém o controle disso internamente criando os arquivosDurante o curso da bissecção, outros arquivos de rascunho podem ser criados:
A presença desses arquivos informa ao Git, a você, ou
git status
a uma ferramenta externa, como o prompt do terminal, que você está no modo bissetor e dá sentido a quaisquer outrosgit bisect
comandos que você queira dar.De fato, você pode, em teoria, sair do modo bisect, kaboom, sem nenhuma outra alteração, apenas excluindo todos esses arquivos. Mas é mais comum, e uma ideia muito melhor, deixar o Git fazer isso para você, dizendo
git bisect reset
, que também retorna você, por padrão, para o commit em que você estava quando começou.