[git] 合并(merge)和变基(rebase)的理解(区别和优缺点)

您所在的位置:网站首页 1163年是什么生肖 [git] 合并(merge)和变基(rebase)的理解(区别和优缺点)

[git] 合并(merge)和变基(rebase)的理解(区别和优缺点)

2023-11-26 11:14| 来源: 网络整理| 查看: 265

背景

从节点P引申出两条分支,分别为分支A和分支B; 分支A和分支B的关系是部分相同,部分不同;

合并(merge)

顾名思义,分支A和分支B是从节点P分叉出来的,合并之后分支A和分支B会在一个新的节点后会和;假设合并的这个节点是D;

变基(rebase)

变基涉及两个名词,一个是分支(branch),一个是上游(up stream);

一开始我对变基的理解是:把分支A中所有节点(除节点P及P之前的节点)加在分支B上面;看起来就像是从节点P开始,先开发了分支B,然后在分支B的基础上开发了分支A; 如此一来,分支A和分支B的关系变成了分支A包含了分支B; 这种情况下的分支B叫上游(up stream);

后来我对变基的理解变成了:从节点P开始,把分支A中各个节点按提交的顺序加在分支B的上面;因为一个节点对应一次内容改变,所以分支A中不想要的改变可以在变基的过程中跳过相应的节点;

区别与优缺点

在较大的工程中,变基一般都会出现冲突,这个时候需要在冲突的地方进行仲裁:

决定采用分支A的写法;决定采用分支B的写法;兼容两边的写法;

上述3个方法中,除了方法1不会改变分支A的内容,后两种方法会对分支A进行改变;就是说变基后的分支A变化了,跟变基前的分支会不一样;

所以如果变基失败了,分支A也就废了,因此在变基之前先对分支A做一次备份;

而合并的时候发生冲突,仲裁后两条分支都不会发生改变,既是说不会无论是分支A和分支B都会保留节点D之前的内容;但在复杂的工程中,随意的合并分支,个人觉得会显得分支比较杂乱;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3