[GitHub 100일 챌린지] Day 70 - Git Bisect로 버그 찾기
[GitHub 100일 챌린지] Day 70 - Git Bisect로 버그 찾기
100일 챌린지 Day 70 - 이진 탐색으로 버그가 발생한 커밋을 빠르게 찾는 Bisect를 배웁니다.
배울 내용
- Bisect의 이진 탐색 원리
- 수동/자동 Bisect
- 버그 커밋 특정
1. Bisect란?
버그가 처음 발생한 커밋을 이진 탐색으로 찾기
1
# 100개 커밋 → 7번 테스트로 찾기 (log₂100)
2. 기본 사용법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 시작
git bisect start
git bisect bad # 현재는 버그
git bisect good v1.0.0 # 1.0은 정상
# Git이 중간 커밋으로 이동
# 테스트 후
git bisect good # 또는 bad
# 반복...
# 버그 커밋 발견!
# 종료
git bisect reset
3. 자동 Bisect
1
2
3
4
5
6
7
8
9
10
11
# 테스트 스크립트
cat > test.sh <<'SCRIPT'
#!/bin/bash
npm test
SCRIPT
chmod +x test.sh
# 자동 실행
git bisect start HEAD v1.0.0
git bisect run ./test.sh
4. 실전 활용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 언제부터 로그인이 안 될까?
git bisect start
git bisect bad # 현재
git bisect good v2.0 # 2.0은 정상
# 각 커밋 테스트
npm start
# 브라우저 테스트
git bisect good/bad
# 반복...
# 123abcd is the first bad commit
git bisect reset
정리
완료 체크:
- Bisect로 버그 커밋을 찾을 수 있다
- 이진 탐색의 효율을 이해했다
핵심 요약:
git bisect start/good/bad- 이진 탐색으로 O(log n)
- 자동화 가능
Phase 7 완료! 🎉
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
