고민보단 실천을

git bisect로 버그 커밋 찾기: 이진 탐색으로 원인 추적 시간을 줄이는 법 본문

GIT

git bisect로 버그 커밋 찾기: 이진 탐색으로 원인 추적 시간을 줄이는 법

Just-Do-It 2026. 2. 20. 20:59

git bisect로 버그 커밋 찾기: 이진 탐색으로 원인 추적 시간을 줄이는 법

git bisect는 정상/비정상 기준점을 주면 자동 이진 탐색으로 문제 커밋을 좁혀주는 강력한 디버깅 도구다. 초보~중급 개발자가 바로 적용할 수 있도록 명령어 흐름, 옵션 선택 기준, 복구 절차를 실무 중심으로 설명한다.

git bisect reference image
공식 Git 로고 (출처: git-scm.com)

git bisect 기본 사용 패턴

git bisect start
git bisect bad
git bisect good v1.3.2
git bisect run npm test
git bisect reset

자주 쓰는 옵션 3~6개

항목의미언제 쓰는지(실무 상황)
startbisect 세션 시작버그 재현 조사 작업을 시작할 때
good정상 커밋 지정문제 없던 기준 시점을 표시할 때
bad문제 커밋 지정현재 문제 재현 커밋을 지정할 때
run스크립트로 자동 판별재현 테스트를 자동화하고 싶을 때
reset세션 종료 후 원래 브랜치 복귀조사를 마무리할 때

실무 적용 순서

1) 실행 전 상태 확인

git status와 git log로 현재 위치를 확인한다. 특히 원격 공유 브랜치인지, 로컬 전용 브랜치인지 먼저 판단해야 안전하다.

2) 목적에 맞는 옵션 선택

동일 명령어라도 옵션에 따라 이력 보존, 충돌 위험, 협업 영향이 달라진다. 팀 정책과 배포 단계에 맞춰 옵션을 고른다.

3) 실행 후 검증

명령 실행 뒤에는 status, diff, 테스트를 통해 결과를 검증한다. 필요하면 즉시 복구 명령(reflog, revert, stash)을 연계한다.

문제 상황 1개

상황: 간헐적 장애 원인 커밋을 수동으로 찾느라 시간이 오래 걸린다.
원인: 로그 탐색만으로 후보를 좁히려 했다.
해결: good/bad 기준을 잡고 bisect run으로 자동 판별한다.
예방 팁: 재현 가능한 테스트 스크립트를 평소에 유지한다.

참고/출처

공식 문서: git-bisect manual
공식 문서: Pro Git - Debugging with Git
신뢰 자료: Atlassian - Debugging with bisect

Comments