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

+ Recent posts