36 lines
2.5 KiB
Markdown
36 lines
2.5 KiB
Markdown
|
---
|
|||
|
title: Git Bisect
|
|||
|
localeTitle: Git Bisect
|
|||
|
---
|
|||
|
## Git Bisect
|
|||
|
|
|||
|
Команда `git bisect` помогает найти коммиты, которые добавили определенные изменения в ваш проект. Это особенно полезно, если вам нужно найти, какое изменение ввело ошибку.
|
|||
|
|
|||
|
Эта команда работает, предоставляя ей «плохую» фиксацию, которая включает в себя ошибку и «хорошую» фиксацию до того, как была введена ошибка. Через двоичный поиск `git bisect` выберет фиксации и попросит вас определить, является ли коммит «хорошим» или «плохим». Это продолжается до тех пор, пока команда не сможет найти точное коммитирование, введшее изменение.
|
|||
|
|
|||
|
### Команды Bisect
|
|||
|
|
|||
|
Чтобы начать сеанс bisect, вы сообщите git, чтобы начать сеанс bisect, определить «плохую» версию и определить «хорошую» версию. Предполагая, что текущая фиксация нарушена, но фиксация `4b60707` хороша, вы будете запускать следующее:
|
|||
|
|
|||
|
```shell
|
|||
|
git bisect start
|
|||
|
git bisect bad
|
|||
|
git bisect good 4b60707
|
|||
|
```
|
|||
|
|
|||
|
Git проверит фиксацию между «хорошими» и «плохими» версиями и выведет что-то вроде следующего:
|
|||
|
```
|
|||
|
Bisecting: 2 revisions left to test after this (roughly 2 steps)
|
|||
|
```
|
|||
|
|
|||
|
Теперь вы должны сообщить git, если текущая фиксация работает с `git bisect good` или если текущая фиксация нарушена с `git bisect bad` . Этот процесс будет повторяться до тех пор, пока команда не сможет распечатать первый неудачный коммит.
|
|||
|
|
|||
|
Когда закончите, вы должны очистить сеанс bisect. Это приведет к сбросу HEAD до того, что было до начала сеанса bisect:
|
|||
|
|
|||
|
```shell
|
|||
|
git bisect reset
|
|||
|
```
|
|||
|
|
|||
|
### Другие источники
|
|||
|
|
|||
|
* [Документация Git bisect](https://git-scm.com/docs/git-bisect)
|