Все записи с тэгом git

Отладка через git bisect

Сегодня узнал о способе отладки через git bisect. Работает это путем поиска по истории репозитория.

Допустим зарелизили в прод стопицот фич и что-то сломалось. Неделю назад работало, а теперь нет. Берем коммит недельной давности, когда точно все работало и переключаемся в него: git checkout <тот самый коммит>. Ставим метку git bisect start.

Проверяем, все ли работает и если да ставим метку: git bisect good. Далее git кидает нас на следующий коммит. Если все работает ставим good, если нет: git bisect bad. И так продолжаем искать с середины диапазона сужая поиск пока не останется один коммит.

Найдя коммит, где все сломалось, уже можно понять проблему. Для завершения поиска: git bisect reset. Эта штука сегодня сильно помогла мне найти проблему, так что я решил записать все, пока не забыл 🙂

Подробнее можно почитать вот тут.

Немного git-а

git branch --contains <commit> – позволяет посмотреть в какой ветке коммит. А чтобы найти все ветки, понадобится флаг -a:

git branch -a --contains <commit>

При необходимости можно просто перейти на коммит: git checkout <commit>. Или вынести его в новую ветку: git checkout -b new-branch-name <commit>.