Ручное нахождение коммита, в котором был обнаружен баг
Ваша задача - вручную найти коммит, в котором был обнаружен баг в репозитории git-playground
. Репозиторий можно найти по адресу https://github.com/labex-labs/git-playground
. Bug заключается в том, что файл file2.txt
должен выводить "This is file2.txt.", а не "This is file2.".
Для завершения этой лабораторной работы вам понадобится использовать команду git bisect
для выполнения бинарного поиска по истории коммитов репозитория. Вам нужно будет помечать коммиты как "хорошие" (без багов) или "плохие" (с багами), пока вы не сузите поиск до коммита, в котором был обнаружен баг.
- Перейдите в директорию репозитория:
cd git-playground
- Запустите процесс
git bisect
:
git bisect start
- Пометьте текущий коммит как "плохой":
git bisect bad HEAD
- Пометьте коммит с сообщением "Initial commit" как "хороший". Git автоматически переключит вас на новый коммит для тестирования:
git bisect good 3050fc0de
Git автоматически переключит вас на новый коммит для тестирования. 5. Если содержимое проверенного файла file2.txt
не соответствует багу, пометьте его как "хороший":
cat file2.txt
git bisect good
- Если содержимое проверенного файла
file2.txt
соответствует багу, пометьте его как "плохой":
git bisect bad
- Как только вы найдете коммит с багом, сбросьте процесс
git bisect
:
git bisect reset
Теперь вы можете изучить изменения кода в коммите с багом, чтобы найти источник бага.
Вот результат теста:
d22f46ba8c2d4e07d773c5126e9c803933eb5898 is the first bad commit
commit d22f46ba8c2d4e07d773c5126e9c803933eb5898
Author: Hang <[email protected]>
Date: Wed Apr 26 14:16:25 2023 +0800
Added file2.txt
file2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 file2.txt