解决-Git: 第一次提交代码时报错“missing Change-Id”

##现象
使用gerrit做代码管理,如果是本地第一次提交代码到git仓库,会报以下错误。

Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 517 bytes | 517.00 KiB/s, done.
Total 6 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5)
remote: Processing changes: refs: 1, done
remote: ERROR: [03d6876] 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 29418 huanglin@192.168.0.221:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote:   git commit --amend
remote:
To ssh://192.168.0.221:29418/**Project
 ! [remote rejected] HEAD -> refs/for/master ([03d6876] missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://huanglin@192.168.0.221:29418/**Project'

上面的错误就是说,我们提交的commit-msg里面缺少了Change-Id。
##解决办法
在windows和Linux系统环境下,解决办法有点不一样。
####Linux系统解决办法
直接按照报错提示,按下面步骤操作:

  1. cd到项目的根目录
  2. 将报错提示中的这段命令复制到终端,按enter键,执行命令
    gitdir=$(git rev-parse --git-dir); scp -p -P 29418 huanglin@192.168.0.221:hooks/commit-msg ${gitdir}/hooks/
  3. 执行命令git commit --amend
  4. 保存退出。

####windows平台解决办法
在windows平台下面,如果执行gitdir那一段命令,会提示说gitdir不是内部或外部命令,也不是可运行的程序或批处理文件。这个时候,就只能用下面这个万能大招了。

  1. cd到项目的根目录

  2. 执行命令
    curl -Lo .git/hooks/commit-msg http://server:port/tools/hooks/commit-msg

  3. 执行命令git commit --amend

  4. 保存退出
    注:server就是你的gerrit服务器的地址,port就是仓库的端口号

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值