老是问rebase merge 的区别,先问,他们为什么要有区别?
我的理解:为了看提交日志需要【主要看顺序,不同的提交排序规则】
A 在orignal 分支 am 8:00提交一次修改 【修改8】
B 在master 分支 am 9:00提交一次修改 【修改9】
A 在orignal 分支 am 10:00提交一次修改 【修改10】
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内部还是以提交为顺序)。