Merge incoming changes into the current branch
Rebase the current branch on top pf incoming changes
本篇只是简单介绍一下Merge和Rebase。介绍的比较短,我们很多时候其实并不太需要了解这两种的区别,但是如果是负责一个项目的代码维护,review其他同事提交的代码,那么这两种提交逻辑就必须要弄明白。否则会耗费很多无效的时间在代码的各种合并上面。
Merge-合并
Merge incoming changes into the current branch
(将传入的更改合并到当前分支)。
一般比较常见的操作都是通过Merge进行的合并。但是该合并方式下有多种策略,并不是无脑的将文件内容同步。
主要有:Fast-foward,Recursice,Ours,Octopus 等几种策略。git会自动根据commit的提交记录集选择合适的策略进行合并操作。
Rebase-变基
Rebase the current branch on top of incoming changes
(在传入更改的基础上重新设置当前分支的基址)。
如果分支合并弄错了,会出现已经修改的代码被合并错误了。
相较于Merge的分支合并,Rebase会改变提交的历史,这也是为什么它是会在更新基础上重置当前分支。
使用场景
在普通使用的情况下:开发只属于自己的分支时使用rebase
,可以减少无用的commit被合并到主分支中。
而多人合作情况下,使用merge
,在减少冲突的同时,也让每个人的提交都有迹可循。