問題
假設有一個分支A,向master分支提交PR,然后發生無法自動解決的沖突,PR提示不能執行merge合並。
解決方案1
- 本地checkout檢出並切換到A分支,pull拉取更新到最新代碼
- 在本地A分支上,merge合並遠程分支master
- 會提示無法合並,手動解決完沖突提交到A分支
- 回到PR,會發現PR已經無沖突
- 讓有merge權限的人進行merge即可
注意:
優點:此方法適用於無merge權限的人操作
缺點:如果此PR最終被Declined拒絕的話,A分支上會包含PR目標分支的代碼(本例中的master分支),造成代碼污染。
解決方案2
- 本地checkout檢出並切換到master分支,pull拉取更新到最新的master代碼
- 手動執行將遠程A分支合並到你本地的master分支,此時本地會看到沖突的文件
- 編輯沖突文件,手動解決沖突后,提交merge
- 回到PR,可以發現PR已經被merge了
注意:
優點:此方法僅限有merge權限的人操作
缺點:相比方案1,PR的源分支代碼干凈
建議
若PR大概率一定會被合並,建議使用方案1,更符合正常流程