Change-Id는 cherry-picks 와 git commit --amend 등등 commit을 tracking (찾기) 하는 용도로 사용된다.
(ref site : https://gerrit-review.googlesource.com/Documentation/cmd-hook-commit-msg.html)
commit을 할 때, 자동으로 들어간다면 편하겠지.
이걸 할라면 githooks (https://git-scm.com/docs/githooks) 를 알아야 한다.
위 사이트 정독 필요한데 대충 이해한 것만 포스팅함..
git init may copy hooks to the new repository, depending on its configuration. See the "TEMPLATE DIRECTORY" section in git-init[1] for details. When the rest of this document refers to "default hooks" it’s talking about the default template shipped with Git. |
간단 원리 설명 (Change-Id 자동 입력에 대해서만)
commit message 저장 하면 (vi editor에서 저장하면
1. .git/COMMIT_EDITMSG 파일이 생성
2. .git/hooks/commit-msg .git/COMMIT_EDITMSG 이 수행되어
commit message 중에 comment 부분을 모두 삭제
Change-Id를 얻어온 후 COMMIT_EDITMSG에 Change-Id 삽입
(1) How to set
- .git dir 하위에 바로 적용
hooks dir 생성
project dir ] $ mkdir ~.git/hooks/
commit-msg 파일 얻기
$ scp -p -P 29411 account@(your Gerrit review server):hooks/commit-msg .git/hooks/
(2) How to set
- template dir를 지정한 후 사용
- 장점 : - 여러 project에 동일하게 적용해야 할 때 편리함.
- git clone 하면 자동적용됨 (git clone 시 git init이 수행됨)
template dir 지정
$ git config --global init.templatedir ~/git_template_dir
hooks dir 생성
$ mkdir ~/git_template_dir/hooks/
commit-msg 파일 얻기
$ scp -p -P 29411 account@(your Gerrit review server):hooks/commit-msg ~/git_template_dir/hooks/
현재 project에 적용 (git init을 하면 template dir 의 내용을 .git dir 하위에 모두 복사한다.)
project dir ] $ git init
hooks 확인 (commit-msg 파일이 있는지)
project dir ] $ ls -al ./.git/hooks/commit-msg
Change-Id 들어 갔는지 확인 (commit message를 저장 한 후. .git/COMMIT_EDITMSG를 확인한다)
project dir ] $ cat .git/COMMIT_EDITMSG
'20. Programming > Tools - GIT' 카테고리의 다른 글
Gerrit 에서 HEAD:refs/for/branch 의미 (0) | 2018.11.06 |
---|---|
GIT 기본적 명령어 (수정되돌리기 추가) (0) | 2018.10.30 |
GIT - commit message (0) | 2018.05.18 |
GIT 기본 파일들 (0) | 2018.05.18 |