其实git的官网对变基的解析挺详细的了:地址
从原理上也能理解【变基】和【合并】有啥区别。
我的理解是,【变基】和【合并】都能解决一个问题,那就是合并代码。但是他们的区别是:在master的记录上会有所不同。如下图:(我是用sourceTree做的合并与变基的)
【合并】
【变基】
从上面那两个图可以看到,如果是【合并】的话,C4
这一个记录其实还是在experiment
分支上的,也就是说master
分支上并没有C4
的提交记录。
但如果是【变基】,C4
的记录也会出现在master
上
而且在这分支关系图上还可以看到,【变基】和【合并】对代码的处理的差异。
【合并】是以C2
为基准点,把C3
和C4
合并,并生成新的提交。
而【变基】是以C3
为基准点,并且把分支上的变动&#x