我在远程存储库中设置了一个分支,并在该分支上进行了一些提交。 现在我想将远程分支 merge 到远程主控上。
我的操作大致如下:
- 收银台
- checkout 大师
- merge 分支并修复 merge 错误
- promise
- 推送原点 HEAD:refs/for/master
但是在第5步得到错误信息:
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)
最佳答案
检查您的提交的描述中是否有 Change-Id: ...
。每个提交都应该有它们。
如果不是,请使用 git rebase -i
改写提交消息并添加适当的 Change-Id(通常这是已审核提交的第一个版本的 SHA1)。
为了将来,您应该安装 commit hook,它会自动添加所需的 Change-Id。
在仓库目录下执行scp -p -P 29418 username@your_gerrit_address:hooks/commit-msg .git/hooks/
或从下载它们
http://your_gerrit_address/tools/hooks/commit-msg
并复制到 .git/hooks
现在 git commit --amend --no-edit
插入该行。
关于git - 缺少提交消息中的 Change-Id 时出现 Gerrit 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8845658/