天天看點

git協作開發處理檔案沖突git協作開發處理檔案沖突

git協作開發處理檔案沖突

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

1、TEST項目由同學A和同學B同時開發,存在各自本地的項目名為test1和test2

同學A的工作目錄:

git協作開發處理檔案沖突git協作開發處理檔案沖突

同學B的工作目錄:

git協作開發處理檔案沖突git協作開發處理檔案沖突

2:項目中有一個test檔案,一開始的檔案内容如下:

git協作開發處理檔案沖突git協作開發處理檔案沖突

3:在開發中同學A需要對test檔案進行修改,假設修改内容如下:

git協作開發處理檔案沖突git協作開發處理檔案沖突

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

git協作開發處理檔案沖突git協作開發處理檔案沖突

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

git協作開發處理檔案沖突git協作開發處理檔案沖突

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

git協作開發處理檔案沖突git協作開發處理檔案沖突

第一個框框裡三句話的意思分别是:

1、标記沖突已經解決

2、使用伺服器檔案解決沖突

3、使用本地檔案解決沖突

第二個框框

檔案對比

6:點選第二個框框中的檔案對比,可以看到,git幫我們merge後的檔案往往是這樣的,右側部分。

git協作開發處理檔案沖突git協作開發處理檔案沖突

這個時候,我們既不能标記檔案解決了沖突,因為那不是我們想要的代碼,已經雜亂無章。也不能簡單的讓遠端伺服器檔案覆寫本地或使用本地檔案來解決沖突,那樣,push之後,會丢失自己寫的代碼或者其他同學寫的代碼。下面來看看怎麼辦!

7:解決沖突

首先,我們先儲存一下自己的代碼,另存為test.bak.txt

git協作開發處理檔案沖突git協作開發處理檔案沖突

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

git協作開發處理檔案沖突git協作開發處理檔案沖突

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

git協作開發處理檔案沖突git協作開發處理檔案沖突

再然後:就是通過業務需求或者互相溝通,合并代碼

假設合并後的代碼是這樣的

git協作開發處理檔案沖突git協作開發處理檔案沖突

最後:commit并push代碼到遠端伺服器即可。

最最後:解決檔案沖突的辦法其實就是,把自己的代碼另存為,讓伺服器代碼覆寫本地代碼,合并代碼,commit并push到遠端伺服器。