更新時間:2021-12-23 10:42:05 來源:動力節點 瀏覽2144次
在 Git 中,合并是連接分叉歷史的過程。它將兩個或多個發展歷史連接在一起。git merge 命令可以幫助您獲取 git branch 創建的數據并將它們集成到單個分支中。Git merge 會將一系列提交關聯到一個統一的歷史記錄中。一般使用 git merge 來合并兩個分支。
git merge 命令用于合并分支。
git merge 命令的語法如下:
$ git merge <查詢>
它可以在各種上下文中使用。一些如下:
場景 1:將指定的提交合并到當前活動的分支:
使用以下命令將指定的提交合并到當前活動的分支。
$ git merge <提交>
上面的命令會將指定的提交合并到當前活動的分支。您還可以通過在 中傳入分支名稱來將指定的提交合并到指定的分支。讓我們看看如何提交到當前活動的分支。
請參閱以下示例。我對我的項目文件newfile1.txt進行了一些更改,并將其提交到我的測試分支中。
復制要在活動分支上合并的特定提交并執行合并操作。請參閱以下輸出:
在上面的輸出中,我們已經合并了活動分支 test2 中的先前提交。
場景 2:將提交合并到主分支:
要將指定的提交合并到 master,首先要發現它的提交 id。使用 log 命令查找特定的提交 ID。
$git log
請參閱以下輸出:
要將提交合并到 master 分支,請切換到 master 分支。
$ git checkout master
現在,切換到分支“master”以對提交執行合并操作。使用 git merge 命令和 master 分支名稱。其語法如下:
$ git merge master
請參閱以下輸出:
如上面的輸出所示,提交 ID 為2852e020909dfe705707695fd6d715cd723f9540的提交已合并到主分支中。master 分支中的兩個文件已更改。但是,我們已經在測試分支中進行了此提交。因此,可以合并任何分支中的任何提交。
打開新文件,您會注意到我們提交給測試分支的新行現在被復制到主分支上。
場景 3:Git 合并分支。
Git 允許將整個分支合并到另一個分支中。假設您在一個分支上進行了許多更改,并希望一次合并所有這些更改。Git 允許您這樣做。請參閱以下示例:
在給定的輸出中,我對 test 分支上的 newfile1 進行了更改。現在,我已經在測試分支中提交了這個更改。
現在,切換到要合并的所需分支。在給定的示例中,我已切換到 master 分支。執行以下命令將整個分支合并到活動分支中。
$ git merge <branchname>
從給定的輸出中可以看出,分支 test2 的整個提交已合并到分支 master。
當兩個分支嘗試合并,并且同時在同一個文件中進行編輯時,Git 將無法確定要采用哪個版本進行更改。這種情況稱為合并沖突。如果發生這種情況,它會在合并提交之前停止,以便您可以手動解決沖突。
讓我們通過一個例子來理解它。
假設我的遠程存儲庫已被我的兩個團隊成員user1和user2克隆。user1 在我的項目索引文件中進行了如下更改。
借助 git add 命令在本地存儲庫中更新它。
現在提交更改并使用遠程存儲庫更新它。請參閱以下輸出:
現在,我的遠程存儲庫將如下所示:
它將顯示文件的狀態,例如由誰和何時編輯。
現在,與此同時,user2也更新索引文件如下。
User2 已添加并提交本地存儲庫中的更改。但是當他試圖將它推送到遠程服務器時,它會拋出錯誤。請參閱以下輸出:
在上面的輸出中,服務器知道該文件已經更新并且沒有與其他分支合并。因此,推送請求被遠程服務器拒絕。它會拋出一個錯誤消息,比如[rejected] failed to push some refs to 。它會建議您在推送之前先拉取存儲庫。請參閱以下命令:
在給定的輸出中, git rebase 命令用于從遠程 URL 中拉取存儲庫。在這里,它會在 中顯示類似合并沖突的錯誤消息。
要解決沖突,需要知道沖突是否發生以及發生的原因。Git合并工具命令用于解決沖突。合并命令的使用如下:
$ git mergetool
在我的存儲庫中,它將導致:
上面的輸出顯示了沖突文件的狀態。要解決沖突,只需按I 鍵進入插入模式并根據需要進行更改。按Esc 鍵, 退出插入模式。輸入:w! 在編輯器底部保存并退出更改。要接受更改,請使用 rebase 命令。它將按如下方式使用:
$ git rebase --continue
因此,沖突已經解決。請參閱以下輸出:
在上面的輸出中,沖突已經解決,本地存儲庫與遠程存儲庫同步。如果大家想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容全面,從入門到精通,適合零基礎的小伙伴學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習