總是問rebase merge 的區別,先問,他們爲何要有區別?git
個人理解:爲了看提交日誌須要【主要看順序,不一樣的提交排序規則】日誌
A 在orignal 分支 am 8:00提交一次修改 【修改8】排序
B 在master 分支 am 9:00提交一次修改 【修改9】it
A 在orignal 分支 am 10:00提交一次修改 【修改10】ast
B 在master 分支 am 11:00提交一次修改 【修改11】總結
如今,進入master 分支目錄 執行git merge orignal時間
而後看下日誌,應該是:分支
11:00提交一次修改 【修改11】
10:00提交一次修改 【修改10】
9:00提交一次修改 【修改9】
8:00提交一次修改 【修改8】
若是進入 master 分支目錄 執行git rebase orignal
而後看下日誌,應該是:
10:00提交一次修改 【修改10】
8:00提交一次修改 【修改8】
11:00提交一次修改 【修改11】
9:00提交一次修改 【修改9】
git 實現是把A提交的作個patch,而後應用到master上。
總結:merge以提交時間爲順序,rebase以前後合併進來的分支爲順序(同一次rebase內部仍是以提交爲順序)。