git rebase与git merge都是合并分支,还是有细微的差别
示例:两个分支,test与master,操作的当前分支是master
git rebase 之后:
rebase commit log:被rebase分支在前,当前分支在后
当前分支commit log:ABEFCD
git meger之后:
merge commit log:按时间顺序
当前分支commit log:ABCDG
git pull 默认为git merge,通过git pull --rebase 改变合并方式
形象的例子:
条件:你有两个抽屉A和B,里面都装了衣服,现在想把B中的衣服放到A中
结果:git merge是那种横冲直撞型的,拿起B就倒入A里面,如果满了(冲突)再一并整理;
git rebase它会一件一件的从B往A中加,会根据一开始放入的时间顺序的来加,如果满了你可以处理这一件,你可以继续加,或者跳过这一件,又或者不加了,把A还原,提供多种选择。
所以merge适合那种比较琐碎的,简单的合并,系统级的合并用rebase。