본문 바로가기
Program Development Tips/Git

[Git] 협업에서 이 코드는 누가 작성했을까? git blame과 git log로 알아내는 방법

by Maccrey Coding 2024. 8. 27.
반응형

 

Git을 사용한 협업에서는 가끔 "이 코드는 누가 작성했지?"라는 궁금증이 생길 때가 있습니다.

코드가 예상과 다르게 동작하거나, 수정이 필요한 부분이 생기면 해당 코드를 작성한 사람을 찾아내는 것이 중요합니다.

이때 Git의 강력한 도구들을 활용하면 코드의 작성자와 변경 내역을 쉽게 확인할 수 있습니다.

오늘은 이를 위한 두 가지 주요 명령어, git blame과 git log에 대해 알아보겠습니다.

1. git blame으로 코드 작성자 찾기

git blame은 파일의 각 줄이 마지막으로 수정된 커밋 정보와 작성자를 알려주는 명령어입니다. 코드의 출처를 추적할 때 가장 많이 사용하는 도구 중 하나입니다.

git blame 파일이름

이 명령어를 실행하면, 파일의 각 줄 앞에 해당 줄을 수정한 커밋 해시, 작성자, 그리고 수정 날짜가 나타납니다. 이를 통해 특정 코드 라인이 언제, 누구에 의해 작성되었는지 바로 알 수 있습니다.

 

예를 들어, main.py 파일에서 누가 특정 함수를 작성했는지 알고 싶다면, 다음과 같이 명령어를 사용할 수 있습니다.

git blame main.py

출력 예시는 다음과 같습니다.

a1b2c3d4 (Alice      2023-08-20 14:32:15 +0900  10) def example_function():

위의 예시에서는 Alice가 2023년 8월 20일에 example_function 함수를 작성한 것을 알 수 있습니다.

2. git log로 변경 내역 추적하기

git log는 파일의 변경 이력을 조회할 때 사용됩니다.

특정 파일이나 코드 블록이 어떻게 변경되었는지, 어떤 커밋에서 수정되었는지를 추적할 수 있습니다.

git log -p 파일이름

이 명령어는 해당 파일의 변경 내역을 패치(patch) 형식으로 보여줍니다. 즉, 어떤 라인이 추가되거나 삭제되었는지 상세하게 확인할 수 있습니다.

또한 특정 라인의 변경 이력만 보고 싶다면 -L 옵션을 사용할 수 있습니다.

git log -L :함수이름:파일이름

이 명령어는 특정 함수의 변경 내역을 추적하는 데 유용합니다.

예를 들어, main.py 파일의 example_function 함수가 어떻게 변경되었는지 알고 싶다면 다음과 같이 사용할 수 있습니다.

git log -L :example_function:main.py

이렇게 하면 해당 함수가 처음 작성된 시점부터 지금까지 어떤 변화가 있었는지 모두 확인할 수 있습니다.

3. git log와 git blame을 함께 사용하기

협업 중에는 git blame과 git log를 함께 사용하는 것이 좋습니다.

git blame으로 특정 코드 라인의 작성자를 찾아낸 후, git log로 그 작성자가 해당 파일이나 프로젝트에서 다른 어떤 변경을 했는지 확인할 수 있습니다.

이렇게 하면 코드의 변경 내역을 더 깊이 이해하고, 필요시 작성자와 직접 소통하여 의도를 파악할 수 있습니다.

4. 추가 팁: git annotate와 git show

  • git annotate: git blame의 또 다른 이름입니다. 사용법은 동일하며, 파일의 각 줄에 대한 작성자 정보를 표시합니다.
  • git show: 특정 커밋의 상세 내역을 확인할 때 사용합니다. git blame이나 git log로 확인한 커밋 해시를 기반으로 특정 커밋의 변경 사항을 더 자세히 보고 싶을 때 유용합니다.
git show 커밋해시

이 명령어를 사용하면, 해당 커밋에서 수정된 파일과 변경된 코드 라인을 상세히 볼 수 있습니다.

5. 코드 작성자 추적의 중요성

Git의 git blame과 git log는 협업 중에 코드 작성자와 변경 내역을 파악하는 데 있어 매우 유용한 도구입니다.

이 도구들을 잘 활용하면 코드의 변경 이력을 쉽게 추적할 수 있고, 필요시 해당 작성자와의 소통을 통해 더 나은 협업을 이끌어낼 수 있습니다.

협업 프로젝트에서 코드 품질을 유지하고, 문제를 신속히 해결하는 데 있어 이 도구들은 필수적입니다.

공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

반응형