Qual é a melhor maneira de mudar a árvore que trabalha para um compromisso específico antes de se curvar?

StackOverflow https://stackoverflow.com/questions/2096561

  •  21-09-2019
  •  | 
  •  

Pergunta

Meu fluxo de trabalho usual ao iniciar um git bisect A sessão é:

git bisect start          # start a bisect session
git bisect bad            # I noticed that the current state is broken

Agora, muitas vezes eu sei que as coisas funcionavam no passado, mas ainda não sei qual versão era boa, então eu geralmente quero reverter minha árvore de trabalho para um estado mais antigo, construir, testar, repetir até encontrar uma versão em funcionamento que Eu posso marcar com git bisect good.

Qual é a melhor maneira de fazer a etapa "reverter minha árvore de trabalho para um estado mais antigo"? git reset --hard <some_good_rev>? git checkout <some_good_rev>? Algo mais? Por favor, justifique sua resposta.

Foi útil?

Solução

Normalmente não sei onde está o bom Rev, então tenho que encontrá -lo. Adivinha o quão longe pode ser bom. Digamos, 32 rotações. A partir da ponta de uma filial e com diretórios de trabalho limpos:

$ git checkout HEAD~32

Execute o teste. Se for uma boa rotações, comece a se curvar. Se não for, volte um pouco mais:

$ git checkout HEAD~32

Enxágue, ensaboe, repita.

Por que "checkout git?" Porque "Redefinição do Git" mudará o que compromete a filial como sua "dica", mas o check -out git não o fará.

Outras dicas

Se você não sabe com certeza alguma versão em que a funcionalidade funcionou (o compromisso que introduziu a funcionalidade?), Parece perder muito (tudo?) Do benefício de um bissect. Se você sabe que houve pelo menos um compromisso em que a funcionalidade funcionou, mesmo que não seja necessariamente a confirmação mais recente em que a funcionalidade funcionou, basta sinalizar isso tão bom. Caso contrário, você está basicamente fazendo um bissect.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top