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

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

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

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

1.   git merge

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

在 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 的話,程式碼庫的提交歷史將會變得異常清晰。

 222222

# 建立新分支 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