rebase就是重新定义你分支的起点, 分支上的commit将生成对应的新的commit并放在你指定的新的起点commit后, 分支上的老commit将被删除.
rebase就是将你的分支从一个commit移动到另一个commit作为起点.
用法
git rebase <base>
将base做为你当前分支的新起点, 这个<base>可以是任何一种commit引用(如ID, brand名, tag, HEAD~N).
讨论
rebase的主要目的就是保持project history是在一条线上没有分叉的. 例如, 想象下当你的feature branch生成修改后, 你又回过头去修改了的你的master(分叉了):
你有两种方法用来合并feature到master: 直接使用merge或者rebase后再merge. 下图展示第二种方法:
rebase是一个常用的方法, 用来集成上流的change到你的本地仓储. 换句话来说, rebase就像是在说"我想将我的修改base到每个人做的commit之后".