解決gerrit commit後pull發生衝突的問題

FallingYou發表於2018-06-25
1、先用git status 檢視衝突檔案
2、手動修改下衝突的檔案
3、然後git add重新新增修改後的檔案
4、然後使用 git rebase --continue


      tips: 執行完$git pull --rebase 之後,本地如果產生衝突,手動解決衝突之後,用"git      add"命令去更新這些內容的索引(index),然後只要執行:
$ git rebase --continue 就可以線性的連線本地分支與遠端分支,無誤之後就回退出,回到matser分支。
注意:一般情況下,修改後檢查沒問題,使用rebase continue來合併衝突。


5、git push origin master:refs/for/master  重新push修改過的檔案


回到主題
執行完git pull --rebase之後如果有合併衝突,使用以下三種方式處理這些衝突:
git rebase --abort 會回到rebase操作之前的狀態,之前的提交的不會丟棄;
git rebase --skip 則會將引起衝突的commits丟棄掉;
git rebase --continue 用於修復衝突,提示開發者,一步一步地有沒有解決衝突,fix conflicts and then run "git rebase --continue"
對上述衝突的處理
1、使用 $git rebase --abort
執行之後,本地內容會回到提交之間的狀態,也就是回到以前提交但沒有pull是的狀態,簡單來說就是撤銷rebase。
2、使用 $git rebase --skip
git rebase --skip 引起衝突的commits會被丟棄,對於本文應用的例子來說開發者A對c.sh檔案的commit無效,開發者A自己修改的部分全部無效,因此,在使用skip時請慎重。
執行:$ vim c.sh
檢視本地c.sh檔案提交內容,展示如下圖所示,執行語句之後開發者A的修改無效。
3、使用 $git rebase --continue
執行完$git pull --rebase 之後,本地如果產生衝突,手動解決衝突之後,用"git add"命令去更新這些內容的索引(index),然後只要執行:
$ git rebase --continue 就可以線性的連線本地分支與遠端分支,無誤之後就回退出,回到matser分支。
注意:一般情況下,修改後檢查沒問題,使用rebase continue來合併衝突。


相關文章