728x90
반응형
이진탐색 알고리즘을 이용하여 git에서 특정 커밋을 찾아내는 방법이 있다.
git bisect
이진탐색 방식을 통해 오류 또는 성능저하를 발생시키는 커밋을 효율적으로 찾아낼 수 있다.
편하게 현재 커밋과 특정 커밋을 기준점으로 잡는 방법을 해보자.
git 이진탐색 시작
git bisect start
위 커맨드를 입력하면 다음과 같이 good, bad commit의 입력을 기다리는 상태라고 안내해준다.
status: waiting for both good and bad commits
* 현재 커밋을 오류가 나고있는 상태의 bad commit으로 설정
git bisect bad
입력시 아래와 같이 good commit의 입력을 기다리고 있다고 안내해준다. (bad commit은 알려져있다는 표시도 함께)
status: waiting for good commit(s), bad commit known
* 특정 커밋을 오류가 없는 good commit으로 설정
커밋 hash 값을 주어 설정
git bisect good c736f0dd48f5c83de6a8ccddafd2452098dad856
입력시 아래와 같이 검사해야할 항목이 얼마나 남았는지 안내해주며 bad와 good의 중간 커밋으로 이동한다.
이등분: (대략 7 단계) 뒤에 시험할 리비전이 166개 남았습니다
(영어로 안내해주다 한글로 안내해주다 혼자 왔다갔다하네....)
해당 커밋에서 문제가 없으면 아래 명령어 입력
git bisect good
해당 커밋에서 문제가 있으면 아래 명령어 입력
git bisect bad
위와 같은식으로 문제가 있는지 없는지를 입력해주면, 범위를 반씩 좁혀가며 문제가 있는 커밋의 범위를 좁혀간다.
오류 커밋을 찾거나 하는 등의 이유로 이진탐색을 멈추려면 아래 명령어 입력
git bisect reset
참고:
728x90
반응형
'Git & Github' 카테고리의 다른 글
git: git stash -p # git stash 부분적으로 하기 (0) | 2024.11.21 |
---|---|
git config # --list # user.name # user.email (0) | 2024.05.18 |
git: cherry-pick by range # cherry-pick을 범위로 가져오기 (0) | 2024.04.22 |
git&github: 내 최근 커밋 위에 pull request 올려서 테스트 (머지 X, rebase 활용하기) (0) | 2024.01.30 |
git hook: 특정 명령어 금지 시키기 (0) | 2024.01.20 |