天天看點

Git沖突解決方案Git沖突解決方案

Git沖突解決方案

在程式開發的時候,我們使用Git的時候,不得不面臨着一個檔案被多個人修改和送出,這樣就會産生沖突,如果處理不好,不僅沖突解決不了,還會造成復原代碼,或者代碼覆寫,損失利益,是以我通過實踐模拟,寫了此規範操作,希望同僚們遇到沖突無法解決時,可以幫助大家解決問題。一共十個步驟,每一步都不能簡化省略。

第一步:pull一下,更新程式

方法:右鍵項目->Team->pull

此時會出現沖突,如上圖,紅框内就是沖突的檔案,一份是來自本地,一份是來自伺服器端。項目名稱的右邊有個向下的箭頭,表示沒有pull成功,數字代表沖突的檔案數,現在先點選OK,不用管它。

第二步:同步,檢視沖突代碼

方法:右鍵項目->Team->SynchronizeWorkspace

可以看到左側的一行目錄中,紅方塊表示有代碼沖突的檔案,右箭頭代表沒有沖突,但是伺服器端要更新的檔案。沒有沖突的檔案可以先不管它,輕按兩下紅方塊,可以看到本地和伺服器端的代碼對比圖,可以清楚看到,左側是本地的,右側是伺服器端的。

第三步:人工修改,保持本地最新版

方法:可以直接對照伺服器端進行修改。

 假如,我們人工修改了前三行,前三行要伺服器端的代碼,剩下的兩行要我們本地的代碼,這樣讓本地組成最新版的代碼。Crtl+S儲存,我們可以看到原來沖突的五行,變成了兩行。

第四步:Add to Git Index,送出修改

方法:沖突檔案右鍵->Add to Git Index

此時,紅方塊檔案上出現了一個黑色的*,此步驟表示已經修改完了,準備好送出了。

第五步:Commit送出

方法:項目右鍵->Team->Commit或者使用Git Staging,我用的是Git Staging

此方法目的是要把修改好的檔案送出到本地倉庫,一定要記住,修改了什麼檔案就送出什麼,不要全部送出,如果使用Git Staging,則拖到Staged Changes中,然後寫好Commit Message,最後選擇Commit。【不要選擇Commit and Push,你是push不上去的,因為現在還屬于沖突狀态,而Commit是送出到本地倉庫】。

因為還沒push,是以此時可以看到項目右邊的箭頭出現了一個上箭頭,可以了解為push到伺服器端不成功,

第六步:再次pull一下,更新程式

方法:項目右鍵->Team->pull

此時,我們可以看到項目出現了合并項,文本框内出現的兩個版本就是要合并的對象,不用管它,點選OK。

我們可以看到,紅方塊又出現了。這次是提示你要進行人工合并,步驟和第三步有所不同。

第七步:人工合并,更新到最新版

我們點開程式後,發現,出現了很多非程式的東西,甚至造成了檔案報錯,這是因為把兩個版本的檔案進行了合并,并且保留所有版本,于是要人工對不想要的版本進行删除。HEAD包含的是本地的版本,而====下面的是伺服器端的版本。假如我們修改後,得到如下版本:

此時本地版本為最新版本。

第八步:Add to Git Index,确認修改

方法:沖突檔案右鍵->Team->Add to Git Index

我們可以看到檔案又變成了我們熟悉的黑色*。

第九步:Commit送出

方法:Git Staging或者項目右鍵->Team->Commit

此時,我們發現沖突檔案已經放入Staged Changes,而Message中寫的是沖突檔案和合并的對象,不過不用管它,照樣删除,重新寫上自己想寫的文字,例如“OK,測試Git送出”。

設定好後,點選Commit進行送出,此時,依然是送出到本地倉庫。此時發現下箭頭不見了,隻剩下了上箭頭,說明pull已經成功了。

第十步:push

方法:項目右鍵->Team->push branch

此步驟是本地倉庫向遠端倉庫進行送出,選擇push branch是要送出到指定的分支,這樣做就不會造成分支選擇錯誤。選擇好送出路徑,點選Next。

此時,沒有了沖突,點選Finish就可以送出了,然後點選OK,大功告成,此時項目名稱右側的箭頭也全部消失了。恭喜你,你已經把本地最新版的代碼送出到Git上了。