Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

多人協作開發的情況下,往服務器推送更新時難免出現衝突,所以推送之前需要解決服務器端的最新版本和本地倉庫的衝突。Pull操作就是把服務器端的更新拉攏到本地倉庫進行合併,解決好合並衝突後,就可以順利push到服務器分支了。

假設現在Mairo兄弟在用GIT協作開發NewSuperMairoBro遊戲,目前服務器端的mushroom.java文件的內容如下:

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

MairoBro克隆出代碼後,Mairo哥哥做了如下修改

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

Mairo弟弟做了如下修改

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

然後Mairo弟弟先push代碼,Mairo哥哥使用pull來合併本地倉庫和遠程倉庫,將發行文件出現衝突,此時GIT會自動合併衝突的文件,如下圖所示:

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

很明顯自動合併的衝突文件不能直接使用,我們可以手動調整,右鍵發生衝突的文件,選擇Team -> Merge Tool

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

第一項是將GIT自動合併過的文件和服務器端文件進行對比

第二項是用本地最新版本的文件和服務器端文件進行對比,建議用此項

接下來就是熟悉的對比界面

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

Mairo哥哥將衝突文件修改如下

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

然後右鍵點擊此衝突文件,選擇Team -> Add to index再次將文件加入索引控制,此時文件已經不是衝突狀態,並且可以進行提交併push到服務器端

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

解決合併衝突後,Mairo弟弟只需要將服務器中合併後的版本pull到本地,就完成了一次協作開發的代碼合併。從歷史記錄中可以看到,從mushroom開始歷史進入分支,先是mushroomA的記錄,然後是mushroomB的記錄,最後歷史分支合併。

Eclipse上GIT插件EGIT使用手冊之八_解決推送衝突

發佈了6 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章