Git bisect는 정상 버전과 문제가 있는 버전 사이에서 원인 커밋을 좁히는 이분 탐색 도구이다.
원리
검사할 커밋을 선택하고 사용자가 good 또는 bad를 판정하면 남은 후보 구간을 줄인다. 재현 테스트가 있으면 bisect run으로 판정을 자동화할 수 있다.
Git 작업 흐름 |
|---|
Git · Git 스테이징 영역 · Git 커밋 · Git 브랜치 · Git 병합 |
Git 리베이스 · Git stash · Git 태그 · Git revert · Git bisect |
예시
과거 릴리스는 정상인데 최근 버전에서 계산 결과가 틀린다면 각 후보에서 같은 입력을 실행해 처음 실패하는 변경을 찾는다.
주의할 점
테스트가 불안정하거나 여러 번 정상과 실패를 오가면 단순 경계 가정이 깨질 수 있다. 빌드할 수 없는 커밋은 구별하고 작업 후 원래 위치로 복귀한다.