1. 程式人生 > >Eclipse上GIT外掛EGIT使用手冊之八_解決推送衝突

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

 

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

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

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

Mairo弟弟做了如下修改

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

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

第一項是將GIT自動合併過的檔案和伺服器端檔案進行對比

第二項是用本地最新版本的檔案和伺服器端檔案進行對比,建議用此項

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

Mairo哥哥將衝突檔案修改如下

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

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