【git push ERROR: commit id: missing Change-Id in message footer】

2023-12-13 04:03:47

使用 gerrit 后,提交代码会出现如下截图问题:

image-20231208162425445.png

临时解决:

step1: 把上面红色的那条gitidir复制下来执行下:

image-20231208163258360.png

step2:执行下面的命令会添加change_id
  git commit --amend
step3: 然后推送代码到服务器上
  git push origin HEAD:refs/for/$branch

上面这个情况主要针对本地刚下载的仓库第一次提交会出现这个情况,只需要执行一次,以后再该仓库提交就不用执行了,说白了就是这个commit-msg是局部的,只对当前仓库生效。

还有另外一种情况,也是大家遇到比较多的,就是执行了上面的命令,再push时还是一样的错,这个时候,你就要检查下是否其他提交没有change_id,因为gerrit要求每个提交都要有change_id。

举例:

执行 git log 看到类似如下现象:

1282849-20220212113830824-313158982.png

从上而下,我们用commitid1, commitid2, commitid3表示截图中的三个提交,很明显,第二个提交 commitid2 没有 change_id,这个时候我们可以 git reset --soft commitid3来软回退到异常节点的前一个正常的节点,这个操作相当于撤销了最后的git commit -s的操作,add过的代码还在索引库(可以去了解下git reset --soft),具体操作如下:

(1) git reset --soft commitid3

(2) git status 可以看到绿色的已经add过的文件(即commitid1和commitid2的改动)

(3) git commit -s #添加评论,保存退出后会生成change_id

(4) git log 可以看到已经有了change_id

(5) git push origin HEAD:refs/for/工作分支

参考:

https://blog.csdn.net/u012843873/article/details/82424514

该博客中还介绍了第三种方式使用交互式 rebase 找回任意提交位置的 Change-Id ,git rebase -i commitid3,然后参考如下:

1282849-20180922155030845-1310640781.png

其中还介绍了change-ID相关信息,钩子之类的,详细内容见参考链接。

文章来源:https://blog.csdn.net/Sugar_wolf/article/details/134884195
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。