본문 바로가기
Hello World/Troubleshooting

Gerrit 에러 - Missing Change-Id in message footer

by Run DaramG 2020. 12. 16.
에러

ERROR: missing Change-Id in message footer

[remote rejected] HEAD -> refs/for/master (commit : missing Change-Id in message footer)

 

 

원인

Gerrit 에서 커밋 메세지에 Change-Id 작성을 강제화하도록 설정되어 있음.

 

해결 방법

Message에 change-id를 자동으로 생성하는 hook 을 설치하거나, Gerrit 설정을 변경하여야 한다. 아래 세가지 방법 중 상황에 맞는 방법을 선택하여 해결한다.

 

1. change-id를 자동으로 생성하는 hook 을 설치

에러 메세지가 뜰때 Hint 가 같이 나온다. Hint 에 나오는 명령어 두개를 순차적으로 입력 후 다시 Gerrit에 push 하면 해결 된다.

$gitdir=$(git rev-parse --git-dir); scp -p -P <PORT> <GERRIT>:hooks/commit-msg ${gitdir}/hooks/

$git commit --amend --no-edit

$git push origin HEAD:refs/for/master

2. Git clone with commit-msg hook

처음 git clone 명령어 사용시 아래 명령어로 commit msg hook 을 같이 clone 할 수 있다.

<clone>

$ git clone <GERRIT_SERVER>/<PROJECT>

<clone with commit-msg hook>

$ git clone <GERRIT_SERVER>/<PROJECT> && scp -p -P <GERRIT_PORT> <GERRIT_SERVER>:hooks/commit-msg <PROJECT>/.git/hooks/

 

3. Gerrit 의 설정 변경

Gerrit 설정에서 Commit Message 에 Change-Id가 없어도 push 할 수 있도록 설정한다. 이때에는 커밋 push 시 Gerrit 자체에서 메세지 Change-Id를 생성해준다.

Gerrit - Browse - Repositories 클릭 -> All-Projects 클릭 (특정 Project 만 적용할 수도 있다.)

Repository Options 에서 Require Change-Id in commit message 를 True에서 False로 설정.

참조 :  baby-daramg.tistory.com/5

 

댓글