[toc]
一、问题
在push提交的时候,有时会出现以下错误,“missing Change-Id in commit message” :
二、错误原因
从上述错误信息中也可以看出来,该提交缺少Change-ID。由于Change-ID对于git仓库来讲是该提交唯一可识别的ID,因此,缺少Change-ID是一个Fatal error,这样肯定是不能入库的。一般情况下,Change-ID都是由".git/hooks/commit-msg"
脚本在执行"git commit"
的时候自动生成的。如果出现上述错误,极有可能是当前git库下缺少上述".git/hooks/commit-msg"
脚本。
三、解决办法
3.1 获取commit-msg
脚本
获取的方法一般有两种。第一种是使用命令行从git服务器获取,执行以下命令:
gitdir=$(git rev-parse --git-dir);scp-p -P 29418 xxx@gerrit.yyy.com:hooks/commit-msg${gitdir}/hooks/
第二种,右键点击此处,另存为"commit-msg"
,然后将其复制到当前仓库的".git/hooks/"
文件夹下。然后,使用下列命令添加该脚本的可执行权限
chmod a+x .git/hooks/commit-msg
3.2 修改缺少Change-ID的提交
如果是最后一个提交缺少Change-ID,那么只需要执行"git commit --amend"
,重新修改commit message
即可。
如果缺少Change-ID提交不是最后一个,那么请使用"git rebase -i HEAD~xxxx"
修改之后,重新提交即可。