n1ro°
RU

Компьютеры · Инструкция

Как найти коммит, который сломал код: git bisect

Bisect делает бинарный поиск и обычно требует намного меньше проверок, чем ручной перебор истории.

Редакция N1RO · Проверено

Короткий ответ

Запустите `git bisect start`, отметьте текущую ревизию `bad`, известную рабочую — `good <sha>`, затем тестируйте промежуточные commits, пока Git не найдёт первый плохой.

Что делать

  1. Сохраните локальные изменения и выполните `git bisect start`.
  2. Отметьте `git bisect bad` и `git bisect good <known-good-sha>`.
  3. После каждого checkout запускайте воспроизводимый тест и отвечайте `good` или `bad`.
  4. Когда найден первый плохой commit, сохраните SHA и выполните `git bisect reset`.

Проверка результата

  • git bisect назвал конкретный first bad commit, а результат воспроизводится тестом.
  • После git bisect reset рабочее дерево вернулось к исходной ветке/ревизии.

Важно

Если промежуточный commit невозможно проверить, используйте `git bisect skip`, а не угадывайте.

Что учитывать

Если промежуточный commit невозможно проверить, используйте `git bisect skip`, а не угадывайте.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. git-bisect Documentation). Пример и формулировки — редакция N1RO на 2026-09-17.