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) |