반응형

이진 탐색

프로젝트가 진행되면서 버그는 필연적입니다. 다만, 프로젝트를 수행하면서 쌓인 커밋이 수백개라 버그가 생긴 커밋을 찾기가 어려울 수 있는데, 이를 돕기 위해 git에선 이진 탐색을 지원하고 있습니다. 이진 탐색(Binary Search)은 특정 값을 찾기 위한 효율적인 알고리즘으로 탐색의 범위를 반으로 나눠가면서 찾는 방법입니다.  

 

이진탐색의 재밌는 사례

 

이런 유용한 방법을 사용하기 위해서는 탐색 시작 - 문제 커밋 표시 - (문제가 없는) 마지막 커밋 표시의 세가지 단계로 이뤄집니다. 먼저, 아래와 같은 명령어로 이진 탐색을 시작합니다.

 

$ git bisect start

 

아래와 같은 코드를 통해 현재 커밋에 문제가 있다고 표시를 실행합니다.

 

$ git bisect bad

 

그리고 마지막으로 문제가 없는 커밋을 알고 있다면 아래와 같이 입력할 수 있습니다.

 

$ git bisect good [commit id]

 

이렇게 입력을 해주면, 문제가 최초의 커밋을 깃에서 확인을 해줍니다. 문제 커밋을 찾고나서 이진 탐색 전의 헤드로 바꿔 놓을 수 있습니다. 

 

$ git bisect reset

 

참고자료

[1] https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Git%EC%9C%BC%EB%A1%9C-%EB%B2%84%EA%B7%B8-%EC%B0%BE%EA%B8%B0

 

Git - Git으로 버그 찾기

버그를 찾을 때 먼저 그 코드가 왜, 언제 추가했는지 알고 싶을 것이다. 이때는 파일 어노테이션을 활용한다. 한 줄 한 줄 마지막으로 커밋한 사람이 누구인지, 언제 마지막으로 커밋했는지 볼

git-scm.com

 

 

 

반응형