Git·30 вопросов

Что такое Git bisect и как использовать этот инструмент для поиска ошибки в коде?

Ответ

Инструмент git bisect предназначен для автоматического или полуавтоматического поиска коммита, который привнес баг в коде. Когда приложение внезапно перестает работать, а вы не знаете, какое именно изменение сломало функционал, этот метод становится настоящим спасением. Вместо ручной проверки каждого изменения git bisect использует алгоритм двоичного поиска.

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

После инициализации Git автоматически переключит указатель HEAD на коммит, ровно посередине между хорошей и плохой точкой. Теперь задача разработчика — протестировать приложение в этом состоянии. Если код работает корректно и бага нет, в терминале вводится git bisect good. Если баг присутствует, вводится git bisect bad.

Система продолжит делить оставшийся диапазон коммитов пополам после каждого вашего ответа. Этот процесс повторяется несколько раз в зависимости от общего количества проверяемых изменений. Обычно для проверки сотен коммитов требуется всего семь-десять итераций.

Как только бинарный поиск завершится, Git выведет на экран точный хеш и описание проблемного коммита, а также имя автора, который его создал. Для выхода из режима поиска и возврата в исходную ветку достаточно выполнить команду git bisect reset. Это очистит временные файлы и восстановит ваше рабочее окружение.

Полезен ли этот ответ?

Другие вопросы этой темы

Связанные вопросы из других тем