Gerrit评审报错[remote rejected] develop- refs/for/develop(no new changes)
在使用Gerrit做評審的時候,在本次push有提交內容的情況下,遇到這個奇葩錯誤[remote rejected] develop-> refs/for/develop(no new changes)。
具體情況如下:
我使用develop分支創建了一個新的功能分支A,并將修改的代碼push到Gerrit(對應遠程的分支A),并在Gerrit完成評審。接著,我需要將分支A合并到develop分支。我在本地完成merge操作(沒有沖突),這個時候再提交到遠程的develop,客戶端提示我[remote rejected] develop-> refs/for/develop(no new changes)。
后來在網上看到這篇文章,具體內容如下:
問題描述: kevin@kevin-OptiPlex-330$ git push Total 0 (delta 0), reused
0 (delta 0) remote: Processing changes: refs: 1, done To
ssh://xuke@elastos.org:29418/ElastosRDKforEmulator ! [remote
rejected] master -> refs/for/master (no new changes) error: failed to
push some refs to 'ssh://xuke@elastos.org:29418/ElastosRDKforEmulator'
回答: 這個提示表示沒有新的提交。Gerrit審核根據commit
id和changeId來判斷是否是新的提交。如果兩個分支的內容完全一模一樣(一般出現在初次建立新的分支的時候),那么有可能從A分支merge到B分支后,B分支生成的commit
id和changeId完全一樣(這種情況只要兩個分支的內容不一樣就不可能發生),這時Gerrit審核判斷已經有了相同的內容,因此拒絕提交。
解決辦法是通過git commit –amend生成新的changeId。
文章中的情況與我的情況應該基本類似,于是我嘗試在本地merge操作完成后,再次修改一個文件(敲幾個空格),commit后,再次push到Gerrit。操作成功。但是Gerrit中出現的要評審的內容只有我第二次修改的那個文件的內容。完成評審后再檢查其他數據,發現第一次提交的內容已經成功merge到遠程的develop上了。
總結
以上是生活随笔為你收集整理的Gerrit评审报错[remote rejected] develop- refs/for/develop(no new changes)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于$'\r': command not
- 下一篇: Kafka单机、集群模式安装详解(一)