1. 程式人生 > >程式設計師必會技能系列(2)git中merge和rebase比較-3

程式設計師必會技能系列(2)git中merge和rebase比較-3

git中有兩個合併分支的方法,一個是git merge,另一個是git rebase。

一、git merge 講解

1、畫圖講解git merge

用merge合併分支時不會改變歷史(通俗的說就是commit號不會變)。在git中merge會創造一個特殊的commit,這個commit包含兩個父commit。示例,執行git命令,[1]:git checkout master ,[2]:git merge bugFix。結果如下圖所示:

這裡寫圖片描述

現在bugFix是master的祖先,我們現在把bugFix也放到C4上去。

執行命令[1]:git checkout bugFix;[2]:git merge master。得到的結果如下圖:

這裡寫圖片描述

這個過程git並沒有做什麼工作,只是把bugFix移動到commit C4中。現在我們的兩個分支bugFix和master都包含了倉庫中的所有工作。

2、通過commit號講解git merge

這裡寫圖片描述

二、git rebase 講解

1、畫圖講解git rebase

git rebase 可以建立一個更接近線性的提交歷史。但是git rebase會改變提交歷史。

栗子:[1]、git checkout bugFix ;[2]、git rebase master

這裡寫圖片描述

現在master是bugFix的祖先,現在我們把master也放到C3’上

[1]、git checkout master [2]、git rebase bugFix

這裡寫圖片描述

2、通過commit號講解rebase

這裡寫圖片描述