Что такое git bisect и для чего он используется?

«Что такое git bisect и для чего он используется?» — вопрос из категории DevOps, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Git bisect — это инструмент для автоматического бинарного поиска коммита, в котором была введена ошибка (регрессия). Он эффективно сужает диапазон проверяемых коммитов, минимизируя ручную работу.

Принцип работы:

  1. Вы определяете «хороший» коммит (где ошибки нет) и «плохой» коммит (где ошибка есть).
  2. Git автоматически переключается на коммит в середине этого диапазона.
  3. Вы проверяете этот коммит и сообщаете Git, «хороший» он или «плохой».
  4. Процесс повторяется, пока не будет найден первый «плохой» коммит.

Типичный сценарий использования:

# Запускаем процесс бинарного поиска
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) шагов.