IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

这个merge,可能在没接触过分支合并主干,或者主干合并,或者分支合并分支的时候,你会在更新代码,代码冲突的时候,会看到这个merge 单词。

其实,不管是从哪合并到哪,套路都是一样的。重点是,你要搞清楚from和to,就是要把代码从哪from,合并到哪to。这个清楚了,就没啥大问题啦。

1,准备动作
避免合并失败,报错。最好,先做一下准备动作。clean一下,refresh一下,然后再把这个to的目的地项目,也就是代码要合并到的项目,svn更新一下。保证这个to项目是跟svn库里面是一致的。

2,合并操作
直接看图吧。

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

选这个merge from 就是从哪里,合并代码到当前正在打开的这个项目来

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

这个地方,有一串的分支,就是svn上的分支啦。trunk就是主干,下面是分支,等等这名字是自定义的。选择对应的某个分支的组之后,继续,下一图。

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

在这个组下面,可以看到很多的各种分支的名称,要是没看到你要找的那个分支名称,不着急,最下面有个 refresh branches。刷新一下,应该就出来了。

每次合并的时候都refresh一下吧,不然可能看不到你的提交记录。或者找不到你要的那个分支。

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

【Merge All】全部合并:自动检测全部没有合并的版本
【Quick Manual Select】快速手动选择:展示分支所有提交的版本数据,包括已合并和未合并的。非常快【推荐】
【Select With Pre-Filter】按预设的选择:大致意思是 仅加载尚未合并的修订版本以供选择。很慢
一般都是选择我图上箭头????️的那个。自定义合并,这个可控。

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

然后选择你要合并的某些个版本,最前面打勾就好了,要是太久之前的,不怕,看到最上面有个load + 100 ,load +500了吗,点了,就会把更早之前的版本记录给刷新出来。选完之后,点merge selected,就继续。

注意:

每条记录前面的图标,带问号的,是没有合并过的。

合并过的,颜色会变的,变成有个绿色➕号的,下面有图,可以看看。

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

可以看到,提交理由,自动写好,要是没问题,就直接commit,提交,要是不确定呢,你先cancel,然后在本地看看,然后再提交也是一样的。

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

这个是提交之后的效果

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

然后,提交之后在本地的local change这一列会多个分类出来。用完删掉就OK。

IntelliJ IDEA 详细图解 svn merge 分支合并主干,主干合并分支,都是merge一个套路

再次执行上面的merge操作,可以看到,尴尬merge过的记录,前面的图标,颜色变了。说明他已经merge过了。不需要再merge啦。那个黑色问号的就是没merge的,然后下面的没图标的就是不需要merge的。

基本上merge失败,

要么是代码冲突,冲突不要紧,这个你在svn提交下载的时候,也会遇到的。所以应该会处理的。小心点就好。

要么就是刚刚开始的时候,你没有搞准备动作。

所以,准备动作需要搞一下滴。