패스잇
소프트 스킬 · 심화

git bisect를 이용한 버그 원인 커밋 찾기 방법을 설명해주세요.

힌트 · 이진 탐색으로 good/bad 커밋 범위 좁히기, 자동화(git bisect run), 사용 시나리오를 설명해보세요.

이분 탐색커밋 해시good/bad자동화원인 커밋

모범답안

git bisect는 코드에 버그가 발생했을 때, 어떤 커밋에서 해당 버그가 처음 나타났는지 효율적으로 찾아주는 강력한 도구입니다. 이진 탐색 알고리즘을 사용하여 커밋 히스토리를 절반씩 줄여나가면서 문제의 원인이 되는 커밋을 빠르게 찾아냅니다.

먼저 git bisect start 명령으로 bisect를 시작하고, 버그가 없는 마지막 커밋(good)과 버그가 있는 커밋(bad)을 각각 git bisect good [커밋 해시]git bisect bad [커밋 해시] 명령으로 지정합니다.

그러면 git은 중간 커밋을 체크아웃하고, 해당 커밋에서 버그가 있는지 확인합니다. 버그가 있다면 git bisect bad, 없다면 git bisect good 명령을 실행합니다. 이 과정을 반복하면 문제 커밋 범위를 좁혀나가 최종적으로 원인 커밋을 찾아낼 수 있습니다.

git bisect run [테스트 스크립트] 명령을 사용하면 이 과정을 자동화할 수도 있습니다. 테스트 스크립트는 각 커밋에서 자동으로 실행되어 버그 유무를 판단하고, git bisect는 스크립트 결과를 기반으로 다음 커밋을 체크아웃합니다. 원인 커밋을 찾으면 git bisect reset 명령으로 bisect를 종료합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Git / 협업 면접 질문

← Git / 협업 면접 질문 전체 보기