git bisect
git
쓰는 꼴
git bisect start <bad> <good>커밋 구간을 반씩 갈라 문제가 처음 생긴 커밋을 찾습니다 — 끝나면 git bisect reset을 해야 하고, 잊으면 브랜치 없는 커밋 위에 그대로 남습니다.
자주 쓰는 옵션
| 옵션 | 뜻 |
|---|---|
| start <bad> <good> | begin, naming a broken and a working commit |
| good | mark the checked-out commit as working |
| bad | mark it as broken |
| skip | this commit cannot be tested |
| run <cmd> | let a command decide by its exit code |
| reset | stop and go back to where you were |
예시
git bisect start HEAD v1.1.0starts the search between the last release and now
git bisect run npm testfinds the first failing commit with no further input
git bisect resetends the session; skipping this leaves you on a detached commit
되돌리는 방법이 여럿이라 헷갈립니다 — 가리키는 곳을 옮기는 것과 새 커밋을 얹는 것은 다릅니다.
읽는 방법
- 대괄호 [ ]는 넣어도 되고 안 넣어도 되는 자리입니다.
- 점 셋 …은 여러 개를 이어 쓸 수 있다는 뜻입니다.
- 옵션은 대소문자를 가립니다 — -r과 -R이 다른 명령도 있습니다.
자주 묻는 것
Q. git bisect은 무엇을 하나요?
커밋 구간을 반씩 갈라 문제가 처음 생긴 커밋을 찾습니다 — 끝나면 git bisect reset을 해야 하고, 잊으면 브랜치 없는 커밋 위에 그대로 남습니다.
Q. 어떻게 치나요?
git bisect start <bad> <good> — 대괄호는 생략할 수 있는 자리입니다.
Q. 옵션은 몇 개나 자주 쓰나요?
여기 정리한 것은 6개입니다. 전체 목록은 man git에 있습니다. 이 명령은 git 갈래입니다.
같이 보는 명령
man 페이지: man git-bisect