[git] 合并(merge)和变基(rebase)的理解(区别和优缺点) |
您所在的位置:网站首页 › 1163年是什么生肖 › [git] 合并(merge)和变基(rebase)的理解(区别和优缺点) |
背景
从节点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 |