Как лучше всего изменить рабочее дерево на конкретный коммит перед его разделением пополам?

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

  •  21-09-2019
  •  | 
  •  

Вопрос

Мой обычный рабочий процесс при запуске git bisect сессия это:

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

Теперь я часто знаю, что в прошлом все работало, но я еще не знаю, какая версия была хорошей, поэтому я обычно хочу вернуть свое рабочее дерево в более старое состояние, строить, тестировать и повторять, пока не найду рабочую версию, которая Я могу отметить с помощью git bisect good.

Как лучше всего выполнить шаг «вернуть мое рабочее дерево в старое состояние»? git reset --hard <some_good_rev>? git checkout <some_good_rev>?Что-то другое?Пожалуйста, обоснуйте свой ответ.

Это было полезно?

Решение

Обычно я не знаю, где находится хороший оборот, поэтому мне нужно его найти.Угадай, как далеко назад может быть хорошо.Допустим, 32 оборота.Начиная с кончика ветки и с чистыми рабочими каталогами:

$ git checkout HEAD~32

Запустите тест.Если обороты хорошие, начинайте делить пополам.Если это не так, вернитесь еще немного назад:

$ git checkout HEAD~32

Промыть, вспенить, повторить.

Почему "git cakeout?" Потому что «git reset» изменит, что совершает филиал, который указывает на его «наконечник», но GIT Checkout не будет.

Другие советы

Если вы не знаете наверняка ни одной версии, в которой эта функциональность работала (коммит, который представил эту функциональность?), вы, похоже, теряете большую часть (все?) преимуществ биссектрисы.Если вы знаете, что был хотя бы один коммит, в котором эта функция работала, даже если это не обязательно самый последний коммит, в котором эта функция работала, просто отметьте его как хороший.В противном случае вы, по сути, сами делаете биссектрису.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top