【問題描述】
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