一般公司都會自己部署gitlab來管理git倉庫,有時候就會上去提交合並請求.再一次申請合併請求是發現有衝突故去解決衝突,解決完點擊確認合併,驚奇的發現會生成一條反向合併而且會用目標分支覆蓋來源分支(代碼回滾了),這個是的巨大的坑這裏記錄下,以免大家也入坑!
詳細情況:
A(源分支)往B(目標分支)分支合併,發生衝突
解決完衝突確認合併
1.看B分支會有一條合併記錄A->B的提交記錄
2.看A分支會發現一條B->A的合併記錄,並且覆蓋所有未解決衝突的代碼(代碼回滾了)
操作圖:
A->B發起合併發生衝突提示解決衝突:
點擊解決衝突按鈕:
這裏使用來源分支A的代碼解決衝突,解決完點擊確認提交:
到合併頁面刷新會發現合併請求已經可以合併了,但是仔細看下面生成了一條很詭異的提交記錄,就是B到A的反向合併記錄:
到分支A上去看,你會發現有一條反向合併記錄(合併請求還沒點確認,只是確認提交了衝突的解決),你說蛋疼不!
這裏總結原因應該是gitlab必須把你解決衝突的提交先合併到源分支,這樣這次的合併請求才沒有衝突,纔可以繼續合併,而不需要開新的分支合併