Компьютеры · Инструкция
Как найти коммит, который сломал код: git bisect
Bisect делает бинарный поиск и обычно требует намного меньше проверок, чем ручной перебор истории.
Короткий ответ
Запустите `git bisect start`, отметьте текущую ревизию `bad`, известную рабочую — `good <sha>`, затем тестируйте промежуточные commits, пока Git не найдёт первый плохой.
Что делать
- Сохраните локальные изменения и выполните `git bisect start`.
- Отметьте `git bisect bad` и `git bisect good <known-good-sha>`.
- После каждого checkout запускайте воспроизводимый тест и отвечайте `good` или `bad`.
- Когда найден первый плохой 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.