1. 程式人生 > 其它 >SourceTree使用教程(四)---衝突解決

SourceTree使用教程(四)---衝突解決

轉載 https://jingyan.baidu.com/article/dca1fa6f19c0abf1a5405246.html

雖然在團隊協作開發中強調儘量避免操作同一檔案,以避免衝突,但是在實際開發中還是會遇到衝突,所以掌握解決衝突的方法必不可少。

方法/步驟

  1. 1

    解決衝突就要先製造衝突,衝突一般是由於兩個人同時修改同一檔案而造成的。在GitHub上修改遠端倉庫檔案模擬一個人操作,sourceTree本地修改同一檔案模擬另一個人操作。

  2. 2

    登入GitHub ,開啟GitTest,編輯test1.txt檔案

  3. 3

    在檔案末尾增加 內容 code conclick1,點選提交。如下圖所示。

  4. 4

    開啟本地工作副本的test1.txt檔案,新增內容code conclick2,如下圖:

  5. 開啟sourceTree,可以看到本地工作副本有個待提交記錄。

  6. 推送程式碼。這個時候你修改完了本地的功能,並不知道遠端倉庫上也有人提交了該檔案的修改。直接推送本地修改,推送本地工作副本到遠端倉庫,執行完成後會報錯,大概是提示本地倉庫和遠端倉庫版本不一致,無法提交,但是本地工作副本的修改卻是已經提交到了本地倉庫。如下圖。

  7. 既然提示 和遠端倉庫版本不一致,無法推送,那隻能先拉成一致了。點選拉取圖示,等執行完,就會出現下圖所示。有一個待拉取的圖示和一個待推送的圖示,並且test1.txt檔案的圖示變成了黃色的感嘆號。這個時候檔案的衝突就造成了。

  8. 衝突檔案會把兩者的修改以衝突的方式合在一個檔案裡,等待使用者去處理。那麼基本的處理思想是:要麼使用其中某一個人的,要麼使用兩者的組合。

    衝突的解決需要一個外部程式碼對比工具,我這裡使用的是Beyond Compare 4,大家可以自己百度下載安裝,然後整合到sourceTree軟體中。如下圖。在外部對比工具中找到Beyond Compare 4的可執行程式,點選確定。

  9. 下面開始使用程式碼對比工具解決衝突,選中待解決衝突的程式碼,右鍵 解決衝突,開啟外部合併工具。

  10. 等待一會,Beyond Compare 4就會被開啟。第一塊是本地修改的版本,第二塊是衝突兩者(本地倉庫和遠端倉庫)相同的版本基準,第三塊是 遠端倉庫的修改。第四塊是衝突處理後的程式碼。

  11. 本次解決衝突是為了合併兩者的修改,所以我會把第一塊和第三塊所做的修改按照正確的邏輯順序,合到第四塊。如下圖,點選儲存。關閉該對比軟體。

  12. 切到sourceTree介面,可以看到多了一個解決衝突的中間檔案,由於衝突已解決,直接右鍵移除,

  13. 可以看到衝突已解決,程式碼已正確合併。推送該合併。

  14. 這樣衝突就被解決了,可以看到本地工作副本和遠端倉庫的程式碼都是一致的了。