git的merge和rabase使用和原理

git项目中经常使用merge和rabase, 由于用的不是很6, so我就想理解下他的原理。

现在,如果master中新的提交和你的工作是相关的。为了将新的提交并入你的分支,你有两个选择: merge或者rebase。

Merge

下面是merge的一个操作, 将master分支合并到feature分支。

git checkout experiment
git merge master

或是压缩在一行

git merge master experiment
image.png

整合分支最容易的方法是 merge 命令。 它会把两个分支的最新快照(C3 和 C4)以及二者最近的共同祖先(C2)进行三方合并,合并的结果是生成一个新的快照(并提交)。

Rebase

作为merge的替代选择

git checkout experiment
git rebase master

或者压缩在一行

git rebase master experiment
image.png

rabase的过程会把节点移动到分支时的起点(C2),然后每个提交创建一个新的提交(C3, C4),重写了项目历史,就好像“重新播放”一样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容