git으로 소스 관리를 하다보면 가끔(실은 종종 ^^) 책임 추궁을 할 일이 발생한다.
빌드를 했는데 에러가 발생했다면,
그 소스파일의 그 라인을 누가 작성한 것인지 알고 싶어지게 된다.
그래야 그 사람에게 그 에러를 해결하라고 말할 수 있기 때문이다.
개발자 입장에서는 조금 부정적인 느낌이 드는 Work-Flow이고,
마음에 들지 않는 명령어이기도 하다. (blame : ...을 탓하다)
하지만, 분명 필요한 명령이기도 하다.
1. General Use
- 어느 소스코드의 몇 번째 라인을 누가 작성했는지 알고 싶을 때엔 아래와 같이 명령하면 된다.
$ cd /srv/workspace/myrepo
$ git blame -L 1,1 ./readme.txt
$ 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 |