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上了。