Gerrit评审报错[remote rejected] develop- refs/for/develop(no new changes)
在使用Gerrit做評(píng)審的時(shí)候,在本次push有提交內(nèi)容的情況下,遇到這個(gè)奇葩錯(cuò)誤[remote rejected] develop-> refs/for/develop(no new changes)。
具體情況如下:
我使用develop分支創(chuàng)建了一個(gè)新的功能分支A,并將修改的代碼push到Gerrit(對(duì)應(yīng)遠(yuǎn)程的分支A),并在Gerrit完成評(píng)審。接著,我需要將分支A合并到develop分支。我在本地完成merge操作(沒(méi)有沖突),這個(gè)時(shí)候再提交到遠(yuǎn)程的develop,客戶(hù)端提示我[remote rejected] develop-> refs/for/develop(no new changes)。
后來(lái)在網(wǎng)上看到這篇文章,具體內(nèi)容如下:
問(wèn)題描述: 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'
回答: 這個(gè)提示表示沒(méi)有新的提交。Gerrit審核根據(jù)commit
id和changeId來(lái)判斷是否是新的提交。如果兩個(gè)分支的內(nèi)容完全一模一樣(一般出現(xiàn)在初次建立新的分支的時(shí)候),那么有可能從A分支merge到B分支后,B分支生成的commit
id和changeId完全一樣(這種情況只要兩個(gè)分支的內(nèi)容不一樣就不可能發(fā)生),這時(shí)Gerrit審核判斷已經(jīng)有了相同的內(nèi)容,因此拒絕提交。
解決辦法是通過(guò)git commit –amend生成新的changeId。
文章中的情況與我的情況應(yīng)該基本類(lèi)似,于是我嘗試在本地merge操作完成后,再次修改一個(gè)文件(敲幾個(gè)空格),commit后,再次push到Gerrit。操作成功。但是Gerrit中出現(xiàn)的要評(píng)審的內(nèi)容只有我第二次修改的那個(gè)文件的內(nèi)容。完成評(píng)審后再檢查其他數(shù)據(jù),發(fā)現(xiàn)第一次提交的內(nèi)容已經(jīng)成功merge到遠(yuǎn)程的develop上了。
總結(jié)
以上是生活随笔為你收集整理的Gerrit评审报错[remote rejected] develop- refs/for/develop(no new changes)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于$'\r': command not
- 下一篇: Kafka单机、集群模式安装详解(一)