Git 디버깅(git bisect)
git bisect start// git bisect 시작git bisect good <rev>// 단어는 good 이지만 의미는 old(과거 시점 or 시작 시점)git bisect bad <rev>// 단어는 bad 이지만 의미는 new(최근 시점 or 종료 시점)git bisect <bad rev> <good rev>//git bisect good <rev>,git bisect bad <rev>한 번에 실행git bisect reset// git bisect 종료
git bisect start
git bisect good 3a72849
git bisect bad 6aab2f2
or
git bisect start
git bisect 6aab2f2 3a72849
반드시
git bisect good을 먼저 설정해야 하며git bisect bad시점보다 과거 시점으로 설정해야 한다.
good,bad명령어는 일반 코드와 오류 코드의 의미로 이해하기보다 과거와 현재의 시점을 나타낸다고 보는 것이 더 옳은 것으로 보인다.
시작 시점과 종료 시점을 정해두면 그 뒤부터는 <rev> 빼고 git bisect good or git bisect bad 만 입력해주면 된다.
해당 커밋시점이 과거(good)로 설정했던 것과 같다면 git bisect good
해당 커밋시점이 최근(bad)으로 설정했던 것과 같다면 git bisect bad
git bisect good or git bisect bad을 실행하게 되면 비교가 끝날 때까지 파일 비교가 필요한 시점으로 checkout을 해준다.
파일의 비교는 수동으로 직접해야 한다. (파일을 열어서 코드변경여부를 본다거나 파일의 유무를 본다거나 하는)
계속 진행하다보면 더 이상 진행이 되지 않는데 해당 시점이 설정해둔 과거와 현재의 변경이 발생한 시점이다.
종료하려면 직접 git bisect reset 입력