git rebase 的意思其實也是蠻簡單的,就是rebase嘛~也就是說把我這個branch的根基換一下的意思,有點像嫁接。
網上一直流傳的三張圖,很經典,可是最初卻被我誤解了: html
before merge/rebase: git
A <- B <- C [master] ^ \ D <- E [branch]
after git merge master: ruby
A <- B <- C ^ ^ \ \ D <- E <- F
after git rebase master: fetch
A <- B <- C <- D' <- E'
(A, B, C, D, E and F are commits) code
其實,這裏rebase的線性,是指在當前branch上是線性的,其中帶'(撇號)的commit並無被同步到master上,仍然在branch上。D'--E' topic / A---B---C master