一、问题:

在日常的工作中,使用git推送代码时会出现以下报错,“missing Change-Id in commit message” :

qinjiaxi:$ git push origin HEAD:refs/for/develop
对象计数中: , 完成.
Delta compression using up to threads.
压缩对象中: % (/), 完成.
写入对象中: % (/), 10.92 KiB | bytes/s, 完成.
Total (delta ), reused (delta )
remote: Resolving deltas: % (/)
remote: Processing changes: refs: , done
remote: ERROR: [abcdefg] 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 xxx.com.cn:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote: git commit --amend
remote:
To ssh://xxx.com.cn:29418/ZXXXX-XXXX-XXXX
! [remote rejected] HEAD -> refs/for/develop ([abcdefg] missing Change-Id in commit message footer)

二、问题分析:

从上述错误信息中可以看出来,该提交缺少Change-ID。由于Change-ID对于git仓库来讲是该提交唯一可识别的ID,因此,缺少Change-ID是一个Fatal error,这样肯定是不能入库的。一般情况下,Change-ID都是由".git/hooks/commit-msg"脚本在执行"git commit"的时候自动生成的。如果出现上述错误,极有可能是当前git库下缺少上述".git/hooks/commit-msg"脚本。(可能是克隆的时候没有选择Clone with commit-msg hook)

三、解决方案

3.1获取commit-msg脚本

使用提示中的命令获取commit-msg脚本:

gitdir=$(git rev-parse --git-dir); scp -p -P  xxx.com.cn:hooks/commit-msg ${gitdir}/hooks/

注:会弹出一个页面,这里直接按照页面的提示退出就行

3.2追加提交:

git commit --amend

3.3推送到代码库:

git push origin HEAD:refs/for/develop

通常以上的几部能够解决问题,如果不能解决的话还可以用以下的方法

由于有多个commit这里我们需要merge合并这些commit为一个然后提交。(前提条件:使用git pull命令拉取最新代码)

1、首先我们创建一个分支

git branch develop_merge

2、然后我们切换到1中创建的分支并删除develop分支

 git checkout develop_merge
git branch -D develop

3、切换到develop分支

git checkout develop

4、git三连

git merge --squash develop_merge
git add .
git commit -m "描述"

其中--squash命令的作用是将develop_merge分支上的几次commit"压缩"后合并到develop分支。

5、最后我们推送代码到远端仓库

git push origin HEAD:refs/for/develop

git推送代码问题之:ERROR: [abcdefg] missing Change-Id in commit message footer的更多相关文章

  1. 使用git推送代码到开源中国以及IDEA环境下使用git

    使用git推送代码到开源中国以及IDEA环境下使用git 在学习Java的过程中我们会使用到git这个工具来将我们本周所编写的代码上传到开源中国进行代码托管,而在使用git的时候有很多的同学由于不会操 ...

  2. Git—推送代码至Github

    Git—上传代码至Github 首先得有个Github的账户,然后创建一个库. 然后找到指向改库的URL 第一次上传需要设置用户邮箱,打开git安装文件/bin下面找到git.bash并打开,设置全局 ...

  3. git推送代码Gogs报401错误

    1.git push 报错:RPC failed; HTTP 401 curl 22 The requested URL returned error: 401 The remote end hung ...

  4. git推送代码报错:fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream

    情景再现 远程新建仓库,然后本地 git bash执行以下代码 git init git add . git commit -m 'xxx' git remote add origin https:/ ...

  5. git 推送代码到远程端

    git init git add . git commit -m "first commit" git remote add origin "地址" git p ...

  6. 使用nginx代理gogs遇到推送代码错误的问题(RPC failed; HTTP 413 curl 22 The requested URL returned error: 413)

    前提 代码管理我是用Gogs.Git,前些阵子使用Nginx将git.balabiu.com反向代理到了Gogs的默认端口,其他二级域名准备做其他使用, 导致上报代码出现了错误. 问题 推送代码报错误 ...

  7. git 打tag(版本)、推送代码

    服务端:192.168.0.96 gitlab 客户端:192.168.0.97 git 服务端gitlab安装请参照: https://www.cnblogs.com/effortsing/p/10 ...

  8. git推送本地分支到远端 以及删除远端分支的 命令

    git推送本地分支到远端 当前处于master分支,尝试用了git push origin warning: push.default is unset; its implicit value is ...

  9. 关于windows下的虚拟机Homestead在推送代码上github 步骤

    1.ssh 秘钥登录配置 使用以下命令检查主机是否生成SSH Key: > ls -al ~/.ssh 2.如果有秘钥,那就跳过这个步骤,如果没有秘钥,则运行以下命令来生成秘钥: ssh-key ...

随机推荐

  1. 递归复制&查看文件夹下的指定后缀的文件

    <?php header("content-type:text/html;charset=utf8"); set_time_limit(0); $dir = "d: ...

  2. 常用mysql 语句

    ALTER TABLE table_name AUTO_INCREMENT = 1;重置自增字段值从1开始 truncate table `table_name` 清空表,保留数据结构

  3. 写给Java程序员的Java虚拟机学习指南

    大家好,我是极客时间<深入拆解Java虚拟机>作者.Oracle Labs高级研究员郑雨迪.有幸借这个专题的机会,能和大家分享为何Java工程师要学Java虚拟机?如何掌握Java虚拟机? ...

  4. WebRTC 及点对点网络通信机制

    原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 这是 JavaScript 工作原理第十八章. 概述 何为 WebRTC ?首先,字面上已经给出了关于 ...

  5. mybatis源码学习(四):动态SQL的解析

    之前的一片文章中我们已经了解了MappedStatement中有一个SqlSource字段,而SqlSource又有一个getBoundSql方法来获得BoundSql对象.而BoundSql中的sq ...

  6. winform练习-通过遍历Control容器中的对象统一委托事件-楼盘选择器

    1.窗体布局如下,一个label标签内容如下,一个btnSave按钮,用于保存,其他九个按钮用于选择楼盘. 2. 按钮存于Control容器中,编写方法遍历容器中的button,通过条件过滤掉不是bu ...

  7. Codeforces Round #590

    题目链接:Round #590 题目答案:官方Editorial.My Solution A. Equalize Prices Again 签到题还WA了一发,向上取整有点问题: //my wrong ...

  8. Markdown中希腊字母与代码对应表

    字母 代码 α\alphaα $\alpha$ β\betaβ $\beta$ γ\gammaγ $\gamma$ Γ\GammaΓ $\Gamma$ δ\deltaδ $\delta$ Δ\Delt ...

  9. shell之路 Linux核心命令【第一篇】管道符与重定向

    输出重定向 命令输出重定向的语法为: command > file 或 command >> file 这样,输出到显示器的内容就可以被重定向到文件.果不希望文件内容被覆盖,可以使用 ...

  10. 虚拟机上图片服务器搭建(FastDFS+nginx)

    文件服务器 0.提前建好需要的文件夹(/home/fastdfs) /home/fastdfs/tracker /home/fastdfs/storage /home/fastdfs/storage/ ...