Gitbisect디버깅트러블슈팅
버그를 도입한 커밋 찾기 (git bisect)
변수 입력3개
언제 사용하나
어느 시점부터 버그가 생겼는지 모를 때, 이분 탐색으로 원인 커밋을 찾을 때.
실행 전 확인
- 버그를 판정할 명확한 기준(테스트/재현 절차)을 정한다.
- 정상이었던 과거 커밋(good)과 문제 있는 현재 커밋(bad)을 안다.
명령
# 1) 이분 탐색 시작
git bisect start
git bisect bad {{BAD}} # 문제 있는 커밋(보통 HEAD)
git bisect good {{GOOD}} # 정상이던 과거 커밋
# 2) git이 중간 커밋으로 체크아웃해 주면, 매번 검사 후 표시
# (수동) 재현 확인 후:
git bisect good # 이 커밋은 정상
git bisect bad # 이 커밋은 버그 있음
# 3) 자동화: 종료코드 0=정상, 1=버그인 스크립트로
git bisect run {{TEST_CMD}}
# 4) 끝나면 원래 브랜치로 복귀
git bisect resetplaceholder 설명
{{GOOD}}/{{BAD}}: 정상/문제 커밋{{TEST_CMD}}: 자동 판정 명령(예:npm test -- pricing)
입력 예시
git bisect run npm test -- pricing
기대 결과
버그를 처음 도입한 정확한 커밋을 알려준다.
검증 방법
지목된 커밋을 git show로 열어 원인이 맞는지 확인한다.
주의사항과 흔한 실수
- 판정 기준이 불안정(플레이키)하면 엉뚱한 커밋을 지목한다.
- 끝나면 반드시
git bisect reset으로 복귀한다.
관련 문서
- git bisect: https://git-scm.com/docs/git-bisect
댓글 0개
아직 댓글이 없습니다.
