Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- HTTP
- observability
- auth
- Operations
- 버전관리
- Infra
- react
- web
- SRE
- DevOps
- architecture
- CI
- Performance
- Git
- reliability
- Kubernetes
- Security
- version-control
- database
- JavaScript
- API
- aws
- CSS
- PostgreSQL
- backend
- Debugging
- Ops
- NextJS
- frontend
- 성능
Archives
- Today
- Total
고민보단 실천을
git bisect로 버그 커밋 찾기: 이진 탐색으로 원인 추적 시간을 줄이는 법 본문
git bisect로 버그 커밋 찾기: 이진 탐색으로 원인 추적 시간을 줄이는 법
git bisect는 정상/비정상 기준점을 주면 자동 이진 탐색으로 문제 커밋을 좁혀주는 강력한 디버깅 도구다. 초보~중급 개발자가 바로 적용할 수 있도록 명령어 흐름, 옵션 선택 기준, 복구 절차를 실무 중심으로 설명한다.

git bisect 기본 사용 패턴
git bisect start
git bisect bad
git bisect good v1.3.2
git bisect run npm test
git bisect reset자주 쓰는 옵션 3~6개
| 항목 | 의미 | 언제 쓰는지(실무 상황) |
|---|---|---|
| start | bisect 세션 시작 | 버그 재현 조사 작업을 시작할 때 |
| 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
'GIT' 카테고리의 다른 글
| git cherry-pick으로 핫픽스 이식하기: 특정 커밋만 선택 반영하는 실무법 (0) | 2026.02.21 |
|---|---|
| git branch 운영 전략: 생성·이름변경·삭제 규칙으로 협업 브랜치 관리하기 (0) | 2026.02.21 |
| git switch 브랜치 전환 실수 방지: -c와 --detach 사용 시점 완전 정리 (0) | 2026.02.20 |
| git status로 변경사항 한눈에 확인: 충돌 전 점검 체크리스트 실무 정리 (0) | 2026.02.20 |
| git rebase 이력 깔끔하게 정리: 충돌 복구와 interactive rebase 실전 (0) | 2026.02.20 |
Comments
