1. 程式人生 > >git協作開發處理檔案衝突

git協作開發處理檔案衝突

git協作開發處理檔案衝突

假設有一個專案TEST放在gitee(github等其他git倉庫中)託管,在多人協作開發的過程中,難免會出現同時修改同一個檔案的時候,同時操作同一個檔案merge的時候就有可能出現衝突。下面記錄一下怎麼解決。

1、TEST專案由同學A和同學B同時開發,存在各自本地的專案名為test1和test2
同學A的工作目錄:

同學B的工作目錄:

2:專案中有一個test檔案,一開始的檔案內容如下:

3:在開發中同學A需要對test檔案進行修改,假設修改內容如下:
在這裡插入圖片描述

同學B也需要對test檔案進行修改,修改內容如下,並把修改內容push到了伺服器上。


4:同學A修改後也想把自己的檔案commit後push到伺服器上,這個時候因為伺服器上有其他同學推送的新程式碼,所以我們需要先pull程式碼到本地。這個時候我們發現剛才修改的test檔案有衝突

5:不要怕,我們繼續點commit,然後滑鼠右鍵有衝突的檔案

第一個框框裡三句話的意思分別是:
1、標記衝突已經解決
2、使用伺服器檔案解決衝突
3、使用本地檔案解決衝突
第二個框框
檔案對比
6:點選第二個框框中的檔案對比,可以看到,git幫我們merge後的檔案往往是這樣的,右側部分。

這個時候,我們既不能標記檔案解決了衝突,因為那不是我們想要的程式碼,已經雜亂無章。也不能簡單的讓遠端伺服器檔案覆蓋本地或使用本地檔案來解決衝突,那樣,push之後,會丟失自己寫的程式碼或者其他同學寫的程式碼。下面來看看怎麼辦!
7:解決衝突
首先,我們先儲存一下自己的程式碼,另存為test.bak.txt

其次:使用遠端伺服器檔案以解決衝突

然後:此時test.txt中是遠端伺服器的程式碼,同學B修改的內容,text.bak.txt是同學A修改的內容。

再然後:就是通過業務需求或者相互溝通,合併程式碼
假設合併後的程式碼是這樣的

最後:commit並push程式碼到遠端伺服器即可。

最最後:解決檔案衝突的辦法其實就是,把自己的程式碼另存為,讓伺服器程式碼覆蓋原生代碼,合併程式碼,commit並push到遠端伺服器。