Pan Ruochen Pan Ruochen - 4 months ago 32
Git Question

Gerrit error when Change-Id in commit messages are missing

I set up a branch in the remote repository and made some commits on that branch.
Now I want to merge the remote branch to the remote master.

Basically follows are my operations:


  1. checkout branch

  2. checkout master

  3. merge branch and fix merging errors

  4. commit

  5. push origin HEAD:refs/for/master



But get error messages on the 5th step:

remote: Resolving deltas: 0% (0/12)

remote: ERROR: missing Change-Id in commit message
...

remote: Change-Id: I55862204ef71f69bc88c79fe2259f7cb8365699a

To ssh://prc@test.gerrit.xxx.com:29418/hello_git
! [remote rejected] HEAD -> refs/for/master (missing Change-Id in commit message)

Answer

Check if your commits have Change-Id: ... in their descriptions. Every commit should have them.

If no, use git rebase -i to reword the commit messages and add proper Change-Ids (usually this is a SHA1 of the first version of the reviewed commit).

For the future, you should install commit hook, which automatically adds the required Change-Id.

Execute scp -p -P 29418 username@your_gerrit_address:hooks/commit-msg .git/hooks/ in the repository directory or download them from http://your_gerrit_address/tools/hooks/commit-msg and copy to .git/hooks

Comments