1. 程式人生 > 程式設計 >詳解git的分支與合併的兩種方法

詳解git的分支與合併的兩種方法

如何將兩個分支合併到一起。就是說我們新建一個分支,在其上開發某個新功能,開發完成後再合併回主線。

1. git merge

咱們先來看一下第一種方法 —— git merge

在 Git 中合併兩個分支時會產生一個特殊的提交記錄,它有兩個父節點。翻譯成自然語言相當於:“我要把這兩個父節點本身及它們所有的祖先都包含進來。”下面具體解釋。

詳解git的分支與合併的兩種方法

# 建立新分支 bugFix
git branch bugFix

# 切換到該分支
git checkout bugFix

# 提交一次
git commit

#   切換回 master
git checkout master

#  再提交一次
git commit

# 用 git merge 把 bugFix 合併到 master
git merge bugFix

(master 的分支被混入到所有的提交記錄,但 bugFix 沒有,所以要進行下面的操作)

# 再把 master 分支合併到 bugFix(因為 master 繼承自 bugFix,Git什麼都不用做,只是簡單地把 bugFix 移動到 master所指向的那個提交記錄。)
git checkout bugFix;
git merge master

2. git rebase

第二種合併分支的方法是 git rebase。rebase 實際上就是取出一系列的提交記錄,“複製”它們,然後在另外一個地方逐個的放下去。

Rebase 的優勢就是可以創造更線性的提交歷史,這聽上去有些難以理解。如果只允許使用 Rebase 的話,程式碼庫的提交歷史將會變得異常清晰。

詳解git的分支與合併的兩種方法

# 建立新分支 bugFix分支
git branch bugFix

#提交一次(提交在master分支上)
git commit

# 切換到bugFix分支
git checkout bugFix

# 提交一次(提交在bugFix分支上)
git commit

#使用git rebase把 bugFix 分支裡的工作直接移到 master 分支上(移動以後會使得兩個分支的功能看起來像是按順序開發,但實際上它們是並行開發#的)。
git rebase master

注意:提交記錄 C3 依然存在(樹上那個半透明的節點),而 C3'是我們 Rebase 到 master 分支上的 C3 的副本。

#切換到master分支上(為了進行更新master的操作)
git checkout master

#把master的 rebase 到 bugFix 分支上(由於 bugFix 繼承自 master,所以 git 只是簡單的把 master 分支的引用向前移動了一下而已。)
git rebase bugFix

到此這篇關於詳解git的分支與合併的兩種方法的文章就介紹到這了,更多相關git分支與合併內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!