當你在git分支中工作時,你最終必須將該代碼與其他應用程序集成。學習如何使用git merge來實現這一點。
將功能分離到不同的分支對於任何嚴肅的開發人員來說都是至關重要的。通過分離每個功能,錯誤修復或正在運行的實驗,您將避免很多問題並保持開發分支的清潔。
在某個時候,一段代碼會達到你想要將它與項目其餘部分整合的狀態。這是git merge命令進來的地方。
準備合併
假設我們想要將分支修補程序合併 到您的主分支中。
在我們開始之前,您如何確保您已準備好合併您的更改?
檢查您的本地存儲庫是否與來自遠程服務器的最新更改保持一致git fetch。
提取完成後,使用該 git checkout master命令。
通過執行確保主分支具有最新的更新git pull。
簽出到應該接收更改的分支,在我們的情況下是主人。
合併
一旦準備工作完成後,你可以開始與合併 git merge hotfix的命令。
快進合併
一個快進合併時,有之間的線性路徑可以發生分支,我們要合併。如果主服務器沒有發生分離,而不是創建一個新的提交,它只會將主服務器指向修補程序分支的最新提交。所有來自修補程序分支的提交現在都可以在主分支中使用。
然而,如果分支機構已經分化,則快速合併是不可能的。在這種情況下,您想使用三路合併。
三路合併用額外的承諾來將兩個分支聯繫在一起。
如何處理合併衝突
一個合併衝突,當你試圖合併這兩個兩個分支改變了同一個文件的同一部分出現。發生這種情況時,Git將無法確定要使用哪個版本。
合併衝突只會發生在三方合併的情況下。
生成 需要解析的文件列表: git status
# On branch master
# You have unmerged paths.
# (fix conflicts and run "git commit")
# Unmerged paths:
# (use "git add ..." to mark resolution)
# both modified: example.rb
# no changes added to commit (use "git add" and/or "git commit -a")
<<<<<<
=======- 將您的更改與另一個分支中的更改分開。
>>>>>>>- 衝突線的結束。
<<<<<<< HEAD(master)
conflicted text from HEAD(master)
=======
conflicted text from hotfix
>>>>>>> hotfix
決定是否僅保留修補程序或主修改,或者寫一個全新的代碼。在合併您的更改之前刪除衝突標記。
當你準備合併時,你所要做的就是在衝突的文件上運行這個 git add命令來告訴他們已經解決了。
提交您的更改git commit以生成合並提交。希望這有助於您更好地瞭解如何合併分支機構並處理衝突。
閱讀更多 愛碼農 的文章