Ответ
Git bisect — это инструмент для автоматического бинарного поиска коммита, в котором была введена ошибка (регрессия). Он эффективно сужает диапазон проверяемых коммитов, минимизируя ручную работу.
Принцип работы:
- Вы определяете «хороший» коммит (где ошибки нет) и «плохой» коммит (где ошибка есть).
- Git автоматически переключается на коммит в середине этого диапазона.
- Вы проверяете этот коммит и сообщаете Git, «хороший» он или «плохой».
- Процесс повторяется, пока не будет найден первый «плохой» коммит.
Типичный сценарий использования:
# Запускаем процесс бинарного поиска
git bisect start
# Указываем текущий коммит как «плохой»
git bisect bad HEAD
# Указываем известный рабочий коммит как «хороший»
git bisect good a1b2c3d4
# После этого Git переключится на коммит для проверки.
# Вы тестируете его и сообщаете результат:
git bisect good # если ошибки нет
git bisect bad # если ошибка есть
# Процесс продолжается автоматически.
# По завершении Git выведет хэш проблемного коммита.
# Возвращаемся в исходное состояние:
git bisect reset
Почему это эффективно: Вместо линейной проверки N коммитов, бинарный поиск находит проблему за ~log₂(N) шагов.