본문 바로가기
코딩 공부/Git

Git Blame - 작업이력 추적하기

by JH-M 2023. 5. 9.

Git을 사용하다 보면, 코드의 변화를 추적하거나 누가 어떤 변경을 했는지 알아야 할 때가 있습니다. 이러한 상황에서 유용한 기능 중 하나가 git blame입니다. 이 글에서는 git blame이 무엇인지, 사용 방법과 옵션들, 그리고 코드 리뷰에 활용하는 실제 사례를 살펴보겠습니다.

Git 블레임 이란?

git blame은 Git에서 제공하는 기능으로, 특정 파일의 각 줄마다 누가 언제 변경했는지를 확인할 수 있습니다. 이를 통해 코드의 변화를 추적하고, 문제가 발생한 경우 책임자를 찾거나 수정 사항을 검토하는데 도움이 됩니다.

Git 블레임 사용 방법

git blame 사용 방법은 매우 간단합니다. 터미널에서 다음과 같이 입력하면 됩니다:

git blame [파일명]

이렇게 하면 해당 파일의 각 라인마다 커밋 정보와 작성자, 날짜, 시간 등이 출력됩니다.

또한, git blame`은 다양한 옵션을 제공하여 출력을 조절할 수 있습니다. 주요 옵션들은 다음과 같습니다:

  • -L: 특정 라인 범위에 대한 작업 이력을 확인합니다.
  • -e: 커밋 작성자의 이메일 주소를 출력합니다.
  • -w: 공백 변경 사항을 무시하고 출력합니다.
  • -M: 파일 이동/이름 변경을 추적하여 결과를 출력합니다.
  • -C: 복사한 코드의 작업 이력을 추적하여 결과를 출력합니다.
  • -n: 원본 줄 번호와 타겟 줄 번호를 함께 출력합니다.
  • -s: 각 라인의 작업 이력을 요약하여 출력합니다.
  • -p: 머신이 읽기 쉬운 포맷으로 출력합니다.

코드 리뷰 사용 사례

git blame은 코드 리뷰에서 특히 유용하게 사용됩니다. 예를 들어, 버그가 발견되었을 때 어떤 커밋에서 해당 문제가 발생했는지 확인하고 책임자를 찾을 수 있습니다.

  1. 먼저, 문제가 있는 파일을 찾습니다.
  2. 해당 파일에 git blame 명령어를 실행합니다.
  3. 출력된 결과에서 문제가 있는 부분을 찾아 해당 커밋, 작성자, 날짜를 확인합니다.
  4. 이를 바탕으로 책임자와 함께 문제를 해결하는 방법을 논의하거나, 필요하다면 해당 커밋을 수정하고 다시 테스트하여 이상이 없는지 확인합니다.

예를 들어, 다음과 같은 example.py 파일이 있다고 가정해봅시다.

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    return a / b

subtract 함수에서 버그가 발견되었다면, 해당 파일에 대해 git blame 명령어를 실행합니다.

git blame example.py

example.py 파일 이력보기

출력 결과에서 subtract 함수가 언제, 누구에 의해 변경되었는지 확인할 수 있습니다. 이를 바탕으로 해당 작성자와 함께 문제를 해결할 수 있습니다.

또한, git blame의 다양한 옵션을 활용하여 필요한 정보만을 확인할 수 있습니다. 예를 들어, -L 옵션을 사용하여 subtract 함수의 특정 라인 범위에 대한 작업 이력을 확인할 수 있습니다.

git blame -L 5,7 example.py

5~7 라인 출력

특정 브랜치에대한 파일이력도 확인할 수 있습니다.

develop 브랜치의 example.py 이력을 확인하는 방법은 다음과 같습니다.

git blame develop example.py

위 명령으로 develop 브랜치만의 파일이력을 확인할 수 있습니다.

이렇게 git blame을 사용하면 효과적인 코드 리뷰 및 문제 해결이 가능합니다.

결론

git blame은 코드 작업 이력을 추적하고 책임자를 찾는데 매우 유용한 도구입니다. 간단한 명령어와 다양한 옵션을 통해 코드 리뷰와 버그 추적을 효율적으로 수행할 수 있습니다. 이 글을 통해 git blame의 개념과 사용 방법, 실제 사용 사례를 이해하고 활용하시길 바랍니다.

댓글