ERROR: missing Change-Id in commit message footer

本文介绍在向Gerrit提交代码时遇到的缺失Change-Id问题及解决方法,包括如何自动插入Change-Id,以及如何修正已提交的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你用 git push 向 gerrit 提交了待审核代码,出现下面的情况:

remote: Resolving deltas: 100% (3/3)
remote: Processing changes: refs: 1, done    
remote: ERROR: missing Change-Id in commit message footer
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
remote:   gitdir=$(git rev-parse --git-dir); scp -p -P 29419 lixinzeng@10.60.242.20:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote:   git commit --amend
remote:
To ssh://XXX@XX.XX.XX.XX:29419/XXX
 ! [remote rejected] HEAD -> refs/for/4.2 (missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://XXX@XX.XX.XX.XX:29419/XXX'

不要焦急,因为我也遇到了,下面是解决方案:

使用ls命令检查该文件是否存在:
$ cd project_dir
$ ls .git/hooks/commit-msg

如果该文件不存在,则按照 git push 时产生的提示信息,获取该文件:
$ gitdir=$(git rev-parse --git-dir);scp-p -P 29418 xx@gerrit.xxxxx.com:hooks/commit-msg${gitdir}/hooks/

上面的命令可以直接从 git push 产生的错误信息中复制出来.

如果缺失 Change-Id 的是最后一个 (head) commit, 使用以下命令即可解决问题:
$ git commit --amend

该命令会打开默认的 commit message 编辑器,一般是 vi.

这时什么都不用修改,直接保存退出即可 (Ctrl+x).

再次查看 git log,就会发现缺失的 Change-Id 已经被补上了. 再次 git push 即可.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值