Во-первых, убедитесь, что вывод git status
пуст - если ваша работа не выполнена, это может объяснить, почему вы снова видите тот же код.
Чтобы просмотреть команды, которые вы цитировали, первые две подойдут:
git bisect start
git bisect good
... которые просто говорят, чтобы начать деление пополам, и что текущая версия плохая. Затем, как только вы это сделаете:
git bisect bad <COMMIT-YOU-THINK-IS-GOOD>`
... git будет автоматически перемещать вас в коммит, который находится примерно посередине между коммитами, которые вы отметили как хорошие и плохие. (Значительная часть кода действительно может быть такой же, когда вы находитесь на новом этапе истории.)
(Обратите внимание, что выполнение git bisect bad <COMMIT-YOU-THINK-IS-GOOD>
в этот момент эквивалентно выполнению git checkout <COMMIT-YOU-THINK-IS-GOOD>
и git bisect bad
.)
Все, что вам нужно сделать на этом этапе, это проверить код . Если проблема все еще существует, просто сделайте:
git bisect bad
... или, если выбранная версия, кажется, хорошая, просто сделайте:
git bisect good
В любом из этих случаев, git снова автоматически переместит вас в новую версию для проверки сразу после ввода этих команд. (Если он перемещает вас к версии, которая не компилируется, или к чему-то похожему, вы можете указать git выбрать другую версию, не отмечая текущую версию как хорошую или плохую, выполнив git bisect skip
.)
По сути, вы продолжаете тестировать новые версии, в которые вас перебирает git, пока не выведет сообщение, говорящее f414f31 is the first bad commit
(или что-то подобное).
Наконец, чтобы завершить деление пополам и вернуться к той ветке / коммиту, в которой вы находились до того, как начали, просто выполните:
git bisect reset
(Вы также можете использовать это для прерывания деления пополам в любой точке выше, если что-то пойдет не так, или вы запутались.)