什么時候容易出現(xiàn)沖突涮因?
多個人同時修改了同個文件中的同一行代碼
無法進行對比的二進制文件,比如圖片等
如何解決沖突伺绽?
如上圖养泡,test_conflict.py文件發(fā)生了沖突,并且多出了幾個文件奈应,其中.mine是我本地修改了還沒提交的版本澜掩,.r2文件是上一個版本的文件,.r1是上上個版本的文件杖挣。
發(fā)生沖突時不用慌肩榕,我們可以輕松解決,選中沖突文件惩妇,右鍵
有幾個選項我們來看下:
Edit confilicts:修改沖突株汉,可以對沖突的行進行內(nèi)容選擇,后面我們詳細(xì)說歌殃。
Mark as resolved:直接標(biāo)記為已解決乔妈,這樣會刪除.mine、.r1氓皱、.r2這些文件路召,但這只是標(biāo)記,如果你直接標(biāo)記為解決波材,實際上文件還是沖突的股淡,只是狀態(tài)修復(fù)了。
Resolve conflict using 'theirs':使用他的提交覆蓋我的修改來解決沖突廷区。如果你的修改不需要提交唯灵,你可以方便的選擇這個。
Resolve conflict using 'mine':使用我本地的版本覆蓋他的來解決沖突隙轻。如果對方提交的代碼沒什么用早敬,你可以直接使用這個來解決忌傻。
下面我們詳細(xì)講解下Edit confilicts這個選項。
上圖是編輯沖突的界面搞监,如果你的界面顯示了很多空白符號水孩,你可以點擊頂部的“Show Whitespaces”來隱藏。
上圖的左邊.r2展示的是上個版本的變化琐驴,右邊.mine是我們本地修改的版本俘种,下面是表示合并后的效果。
左上的第12行下面的綠色等號表示這行被刪除了绝淡,13宙刘、14行前面的+號表示這兩行是新增的
右上的同樣也是刪除了一行,然后增加了第13行
下面區(qū)域的13牢酵,14行顯示的是紅色背景的問號悬包,表示這兩行SVN不知道如何合并代碼。
假設(shè)我們需要13行保留我為我本地的修改馍乙,14行使用他人提交的布近。那么選中右上的第13行,右鍵選擇“Use this text block”丝格,表示使用這行的代碼撑瞧;
選中左上的14行,右鍵選擇“Use this text block”显蝌。這樣就搞定了预伺,下面區(qū)域會顯示合并后的效果。
這樣下面區(qū)域的沖突行就全部解決了曼尊,點擊頂部工具欄的“Mark as resolved”標(biāo)記為已解決好沖突酬诀,或者直接ctr+s保存也會提示“Mark as resolved”菜單。
到這沖突就完美解決了骆撇。
這里再解釋下其他的一些菜單項:
Use this text block:使用這塊代碼為合并后的行
Use this whole file:使用這整個文件作為合并后的文件
Use text block from 'mine' before 'theirs':兩邊的代碼都保留瞒御,我的代碼在前面
Use text block from 'theirs' before 'mine':兩邊的代碼都保留,我的代碼在后面
最后推薦大家一個非常好用的SVN源碼托管站:SVNBucket