总是问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内部仍是以提交为顺序)。