多人協做開發的狀況下,往服務器推送更新時不免出現衝突,因此推送以前須要解決服務器端的最新版本和本地倉庫的衝突。Pull操做就是把服務器端的更新拉攏到本地倉庫進行合併,解決好合並衝突後,就能夠順利push到服務器分支了。java
假設如今Mairo兄弟在用GIT協做開發NewSuperMairoBro遊戲,目前服務器端的mushroom.java文件的內容以下:服務器
public class Mushroom{ public int mushroom; }
MairoBro克隆出代碼後,Mairo哥哥作了以下修改spa
public class Mushroom{ public int mushroomA; }
Mairo弟弟作了以下修改code
public class Mushroom{ public int mushroomB; }
而後Mairo弟弟先push代碼,Mairo哥哥使用pull來合併本地倉庫和遠程倉庫,將發行文件出現衝突,此時GIT會自動合併衝突的文件,以下圖所示:orm
很明顯自動合併的衝突文件不能直接使用,咱們能夠手動調整,右鍵發生衝突的文件,選擇Team -> Merge Tool索引
第一項是將GIT自動合併過的文件和服務器端文件進行對比遊戲
第二項是用本地最新版本的文件和服務器端文件進行對比,建議用此項開發
接下來就是熟悉的對比界面it
Mairo哥哥將衝突文件修改以下class
而後右鍵點擊此衝突文件,選擇Team -> Add to index再次將文件加入索引控制,此時文件已經不是衝突狀態,而且能夠進行提交併push到服務器端
解決合併衝突後,Mairo弟弟只須要將服務器中合併後的版本pull到本地,就完成了一次協做開發的代碼合併。從歷史記錄中能夠看到,從mushroom開始歷史進入分支,先是mushroomA的記錄,而後是mushroomB的記錄,最後歷史分支合併。