• git push 报错:missing Change-Id in commit message footer


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

     

    临时解决:

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

    step2:执行下面的命令会添加change_id

      git commit --amend

    step3:然后推送代码到服务器上

      git push origin HEAD:refs/for/$branch_name

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

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

    举例:

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

    从上而下,我们用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,然后参考如下:

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

  • 相关阅读:
    弹出框
    my.conf 配置编码为utf-8
    解决git pull 命令失效,不能从远程服务器上拉取代码问题
    git config --global core.autocrlf false
    python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
    MySQL缺失mysql_config文件
    物联网操作系统系列文章之-软件平台的力量
    50% 的财富 500 强企业使用 Windows Azure
    Mobile Service更新和 Notification Hub 对Android的支持
    Windows Azure 社区新闻综述(#68 版)
  • 原文地址:https://www.cnblogs.com/zndxall/p/9603834.html
Copyright © 2020-2023  润新知