어제 오늘 내일

[Git] "이 코드 도대체 누가 짰어?" git blame으로 코드의 역사 추적하기 본문

IT/Git

[Git] "이 코드 도대체 누가 짰어?" git blame으로 코드의 역사 추적하기

hi.anna 2026. 2. 6. 01:10

협업을 하다 보면 "이 로직은 왜 이렇게 작성되었을까?" 혹은 "이 설정값은 누가 바꾼 거지?" 하는 의문이 드는 순간이 있습니다.

이때 코드의 모든 줄을 전수조사하여 작성자와 시점을 알려주는 기능이 바로 git blame입니다.

 

1. git blame이란?

blame은 사전적으로 '비난하다'라는 뜻을 가지고 있지만, Git에서는 "파일의 각 라인을 마지막으로 수정한 사람이 누구인지 보여주는 기능"입니다.

이 명령어를 사용하면 파일의 왼쪽 줄 번호 옆에 다음과 같은 정보가 표시됩니다.

  • Commit Hash: 해당 줄을 수정한 커밋의 고유 ID
  • Author: 수정한 사람의 이름
  • Timestamp: 수정된 날짜와 시간

 

2. 실전 사용법

① 기본 사용법

특정 파일의 전체 히스토리를 보고 싶을 때 사용합니다.

git blame index.html

② 특정 범위만 지정해서 보기 (-L)

파일이 너무 길면 보기가 힘듭니다. 10행부터 20행까지만 확인하고 싶다면 아래와 같이 입력합니다.

# 10행부터 20행까지만 조회
git blame -L 10,20 index.html

③ 이메일 주소 확인하기 (-e)

동료에게 직접 물어봐야 할 때 이메일 주소가 필요하다면 이 옵션을 사용하세요.

git blame -e index.html

 

 

3. 실무에서는 어떻게 쓰나요? (IDE 활용)

사실 터미널에서 git blame을 일일이 입력하는 것은 꽤 번거로운 일입니다.

그래서 대부분의 개발자는 에디터의 확장 기능을 사용합니다.

  • VS Code (GitLens): 코드의 특정 줄에 커서를 올리면 옆에 연하게 작성자와 커밋 메시지가 바로 뜹니다.
  • IntelliJ: 줄 번호 위에서 우클릭 후 Annotate with Git Blame을 선택하면 줄마다 누가 언제 수정했는지 칸이 생깁니다.

 

4. 주의사항: "과거의 나"를 조심하세요

git blame을 사용할 때 가장 많이 발생하는 상황 중 하나는, 분노에 가득 차 범인을 찾기 위해 명령어를 입력했는데 작성자가 'You (나)'로 나오는 경우입니다.

  • 포인터: 이 명령어는 비난을 위한 도구가 아니라, "당시 개발자의 의도를 파악하기 위해 누구에게 질문해야 하는가"를 알려주는 협업 도구로 생각해야 합니다.
  • 리팩토링의 흔적: 단순히 코드를 정렬(Formatting)하거나 옮기기만 해도 작성자가 나로 바뀔 수 있으니, 실제 로직을 짠 사람을 찾으려면 커밋 메시지를 함께 확인하는 것이 좋습니다.

 

📝 요약

  1. git blame: 파일의 줄 단위로 작성자, 날짜, 커밋 ID를 확인한다.
  2. -L 옵션: 필요한 부분만 효율적으로 조회한다.
  3. 목적: 비난이 아닌 의사소통을 위한 담당자 확인용으로 활용한다.

 

 

반응형
Comments