...
git blame (수정 내역 확인)
git 프로젝트에서 어떤 코드를 누가 수정했는지, 어떤 commit으로 수정이 되었는지 궁금할 때가 있다. 이럴 때, git blame 명령어를 사용하면 누가 수정했는지, 어떤 commit으로 수정되었는지 알 수 있다.
# 해당 파일에 대한 모든 수정 내역
$ git blame <파일명>
# author name과 timestamp는 출력하지 않음.
$ git blame -s <파일명>
# description과 수정사항을 보여줌
$ git show <커밋번호>
# 파일내용을 start부터 end 라인까지의 수정 내역만 보여줌
$ git blame -L <start,end> <파일명>
만일, hello1.txt라는 파일을 라인별로 누가 수정했는지 알고 싶다면, git blame 명령어와 함께 현재 디렉토리에서 확인하고 싶은 파일 경로를 입력하면 된다.
$ git blame hello1.txt
그럼 다음과 같이 commit id / 수정한 사람, 수정 시간 / 라인 번호 / 파일내용 이 보인다.
이렇게 Line 별로 누가, 어떤 commit으로 수정했는지 알 수 있다.
git show (수정사항 확인)
여기서 commit 8c94bbca로 반영된 내용들에 대해서 알고 싶다면, git show <commit id> 명령어를 사용하여 자세히 확인할 수 있다.
# git show <commit id>
$ git show 8c94bb
git blame -s (author, timestamp 출력하지 않기)
git blame 명령어에서 -s 옵션을 이용하면 author name과 timestamp가 출력되지 않는다.
git blame -L (특정 line에 대한 수정사항만 확인)
소스의 모든 line에 대해서 commit을 확인하고 싶지 않고, 특정 line에 대해서만 확인하고 싶을 때가 있다.
Line 111 public class Glide implements ComponentCallbacks2 {
Line 112 private static final String DEFAULT_DISK_CACHE_DIR = "image_manager_disk_cache";
Line 113 private static final String TAG = "Glide";
만약 Glide.java의 Line 111에서 113까지의 수정사항만 확인하고 싶다면, 다음과 같이 -L <start>,<end>옵션으로 라인을 지정할 수 있다.
# 111 라인부터 113 라인까지의 Glide.java의 수정사항만 출력
$ git blame -L 111,113 Glide.java
ef027a4d4a (Sam Judd 2015-01-02 18:55:14 -0800 111) public class Glide implements ComponentCallbacks2 {
f389e91cce (Sam Judd 2015-02-14 17:47:55 -0800 112) private static final String DEFAULT_DISK_CACHE_DIR = "image_manager_disk_cache";
f389e91cce (Sam Judd 2015-02-14 17:47:55 -0800 113) private static final String TAG = "Glide";
# 참고자료
https://codechacha.com/ko/git-blame/
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.