gerrit submit type 解析(gerrit提交為什么會自動產生一條merge記錄)


如標題描述,最近關於這個gerrit的submit type的設置引起了一個問題,我大概模擬了下開發的提交場景,如下:

開發A和開發B都在修改倉庫repo_test的代碼,開發A修改test1.txt 然后提交到gerrit上,並在gerrit上合入了這個提交(commitA),開發B沒有執行git pull, 直接修改了test2.txt, 這個test2.txt和test1.txt沒有任何關聯性,是完全不相關的模塊,然后開發B提交gerrit,然后gerrit上合入了這個提交(commitidB),此時,由於開發B的這個提交相對服務器少了開發A的改動提交,就自動生成了一條merge(叫commitB+吧),比如如下:

 

 以上,B+是自動生成的merge,這個自動merge的記錄在gerrit上是看不到的,真正的修改是在B,所以開發在gerrit上找到B,讓我(職位:CM)在B節點標記tag,我在B標記tag后打包(我執行git checkout B),發現沒有A的修改了,這就出問題了!!!但是git checkout B+就有A的提交!!

懵逼中。。。。

然后發現,是因為開發B沒執行git pull ,沒把A的改動帶進去,所以提交的時候就自動產生了這個merge的提交記錄,話說,使用rebase就不會產生,但是怎么搞呢?

然后發現了gerrit的submit type 可以控制

 

 默認的是“Merge if Necessary”, 這個就是在有差異的時候自動生成一條merge記錄

所以換成“Rebase if Necessary”,這個會自動rebase,不會自動產生merge記錄

如下是gerrit換成“rebase if Necessary”的提交記錄:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM