git으로 소스 관리를 하다보면 가끔(실은 종종 ^^) 책임 추궁을 할 일이 발생한다.

빌드를 했는데 에러가 발생했다면,
그 소스파일의 그 라인을 누가 작성한 것인지 알고 싶어지게 된다.

그래야 그 사람에게 그 에러를 해결하라고 말할 수 있기 때문이다.


개발자 입장에서는 조금 부정적인 느낌이 드는 Work-Flow이고,
마음에 들지 않는 명령어이기도 하다. (blame : ...을 탓하다)


하지만, 분명 필요한 명령이기도 하다.



1. General Use

     - 어느 소스코드의 몇 번째 라인을 누가 작성했는지 알고 싶을 때엔 아래와 같이 명령하면 된다.


$ cd /srv/workspace/myrepo
$ git blame -L 1,1 ./readme.txt

     - myrepo라는 repository에 있는 readme.txt 파일의 11번째 라인을 누가 작업했는지 알려달라는 의미이다.

     - [ -L ] 옵션 뒤에는 알고 싶은 라인의 시작과 끝을 명시해줘야 하는데,
       특정 1줄만 알고 싶을 경우에는 위와 같이 같은 숫자를 적어주면 된다.



2. Advanced Use

     - [ git blame --help ] 명령을 해보면 친절한 설명을 볼 수 있다.
     - 혹여라도 도움말이 나오지 않으면, 아래 포스팅을 참조하면 된다.
          ▷ http://whatwant.tistory.com/458

     - 여기에서 살펴볼 것은 [ -e ] 옵션이다.

     - 필자가 최근에 진행하고 있는 업무 중 하나가
     - 빌드 자동화 시스템에 붙여서 빌드 에러가 발생하는 경우 해당 내용의 작성자를 찾은 다음
     - 해당 개발자에게 메일로 에러 내역을 발송하도록 하고자 하는 것이다.

     - 그러기 위해서는 해당 소스 라인의 개발자의 이메일 주소를 잡아내야하는데,
     - 위 스크린샷에서 보는 바와 같이 기본적으로는 개발자의 이름만 보여준다.

     - 그래서 필요한 것이 [ -e ] 옵션이다.


     - 그런데, [ -e ] 옵션이 없는 경우가 있다.
     - 현재 패키지 설치로 했을 경우가 그렇다.
     - 소스 설치로 했을 경우에는 가뿐하게 [ -e ] 옵션을 사용할 수 있다.


가볍게 여기까지~

반응형

'SCM > Git-GitHub' 카테고리의 다른 글

Git 명령어 자동 완성 기능 (Source 설치 時)  (0) 2012.08.20
Git's Tag - git tag  (8) 2012.08.10
git man  (0) 2012.07.25
Gitweb + Apache2  (2) 2012.07.16
Code Review - Gerrit (Install)  (12) 2012.07.07

+ Recent posts