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