【问题描述】
gerrit版本:2.3.18
IDEA版本:2019.3.3
前面一天都还是能用的好好的,今天一提交就报错了,有些莫名其妙。其实,第一次使用的时候就曾经报错过,也是这样的错误。但是,当时主要是我每次都没有commit,直接通过IDEA提交空内容。后来,随便修改了一个文件,提交成功了。
但是,这次不一样。很奇怪,到处求爷爷告奶奶,最后使用了大招才搞定。
详细解决过程如下:
进入当前工程的目录(前提是系统有按照git,可以通过命令的方式操作git),输入命令
git push gerrit HEAD:refs/for/dev
返回结果如下:
【问题解析】
咨询了一下大神,大神说,提交代码的时候,出现远端拒绝的错误,一般就两个问题。
第一,本地与服务端代码的源不一致。
这个源,主要包括分支、处于分支的位置,这两个方面只要一个不一致都会出现拒绝的错误。例如,我们提交代码的时候,如果我们本地不先拉取服务端的代码,直接commit提交的话,服务端是有可能会直接拒绝提交的。
因此,养成好习惯:
每天写代码前,先pull。
每次commit前,先pull。
每次push前,先pull。
第二,本地的代码commit的时候缺少了changeId,这个问题比较麻烦。可以参考一下这个链接,来解决。
https://www.ieclipse.cn/2016/05/14/other/tech-gerrit-guide/#comment
[解决方案]
1、拷贝整个工程项目
2、删除要提交代码的分支,一般都是dev分支。
3、重新拉取dev分支。
git checkout -b dev -t origin/dev
4、将原来的代码覆盖拉取回来的代码上。
5、commit.
6、push
git push origin HEAD:refs/for/dev