Git 코드베이스에서 버그 추적

Beginner

This tutorial is from open-source community. Access the source code

소개

Git 은 개발자가 코드베이스의 변경 사항을 시간별로 추적할 수 있도록 해주는 강력한 버전 관리 시스템입니다. Git 의 가장 유용한 기능 중 하나는 버그를 발생시킨 커밋을 찾는 기능입니다. 이는 코드의 문제 원인을 추적할 때 매우 유용할 수 있습니다.

수동으로 버그를 발생시킨 커밋 찾기

git-playground 저장소에서 버그를 발생시킨 커밋을 수동으로 찾는 것이 과제입니다. 저장소는 https://github.com/labex-labs/git-playground에서 찾을 수 있습니다. 버그는 file2.txt 파일이 "This is file2.txt." 대신 "This is file2."를 출력해야 한다는 것입니다.

이 랩을 완료하려면 git bisect 명령을 사용하여 저장소의 커밋 기록을 이진 검색해야 합니다. 버그를 발생시킨 커밋을 좁힐 때까지 커밋을 "good" (버그 없음) 또는 "bad" (버그 있음) 로 표시해야 합니다.

  1. 저장소 디렉토리로 이동합니다:
cd git-playground
  1. git bisect 프로세스를 시작합니다:
git bisect start
  1. 현재 커밋을 "bad"로 표시합니다:
git bisect bad HEAD
  1. "Initial commit" 메시지가 있는 커밋을 "good"으로 표시합니다. Git 은 자동으로 테스트할 새 커밋을 체크아웃합니다:
git bisect good 3050fc0de

Git 은 자동으로 테스트할 새 커밋을 체크아웃합니다. 5. 체크아웃된 file2.txt 파일의 내용이 버그와 일치하지 않으면 "good"으로 표시합니다:

cat file2.txt
git bisect good
  1. 체크아웃된 file2.txt 파일의 내용이 버그와 일치하면 "bad"로 표시합니다:
git bisect bad
  1. 버그가 있는 커밋을 찾았으면 git bisect 프로세스를 재설정합니다:
git bisect reset

이제 버그가 있는 커밋의 코드 변경 사항을 검사하여 버그의 원인을 찾을 수 있습니다.

다음은 테스트 결과입니다:

d22f46ba8c2d4e07d773c5126e9c803933eb5898 is the first bad commit
commit d22f46ba8c2d4e07d773c5126e9c803933eb5898
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file2.txt

 file2.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 file2.txt

요약

이 랩에서는 git bisect 명령을 사용하여 Git 저장소에서 버그를 발생시킨 커밋을 수동으로 찾는 방법을 배웠습니다. 커밋을 "good" 또는 "bad"로 표시하여 커밋 기록을 이진 검색하여 문제의 원인을 빠르게 좁힐 수 있습니다. 이 기술은 복잡한 코드베이스를 디버깅할 때 매우 유용할 수 있습니다.