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. Це очистить тимчасові файли та відновить ваше робоче середовище.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем