从品牌网站建设到网络营销策划,从策略到执行的一站式服务
先来了解下什么是冲突吧。冲突就是代码 String str="aaaa" 被同时修改,一个要变成String str="bbbb";一个要变成String str="cccc";这就在代码合并的时候就带来了冲突。如果代码合并是从主干rebase到分支,如果出现冲突,都是以主干为准(以保证已有的功能不受到影响),就会出现主干代码强制覆盖分支的代码。出现冲突后有4个文件(以pom.xml文件为例):
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了志丹免费建站欢迎大家使用!
1.pom.xml ---------合并后的文件,如果有冲突会有<<<<<<<冲突提示符
2.pom.xml.merge-left.r1298 ---------主干的前一个版本,也就是计算是否有冲突的根文件
3.pom.xml.merge-分支 ---------本地分支的代码,也就是你要求rebase主干的分支代码
4.pom.xml.merge-来源.r1313 ---------主干的代码
有些人认为解决冲突只要看1中的pom.xml中的冲突提示符就够了。然后对有冲突的地方一一解决就够了。如下图:
实际上只是看这个是远远不够的。有这样的一种情况。String str="aaaa",被同时修改,trunk上已经是String str="bbbb";本地分支又被修改为String str="cccc";另外一个变量 String str2 = "aaaa2";trunk上没有变化,只是本地分支被修改为了String str2="cccc2";这个时候svn会将这个文件视为有冲突,因为str 即想变为bbbb又想变为cccc,会计算为冲突。但是str2从冲突的定义上来看不是一个冲突,因为只有一个地方修改。svn在代码合并的时候,发现这个文件有冲突会直接用trunk的内容覆盖分支的内容,并且将str的地方打上冲突提示符。但是str2的地方就不会打上冲突标识符,因为它不是一个冲突。因此这个文件合并后就是这样的:
如果只是按照冲突提示符去合并就会出现本地代码丢失的场景。那么正确的合并冲突解决方法应该是什么呢?应该是根文件(上面提到的pom.xml.merge-left.r1298),分支文件(pom.xml.merge-分支),trunk文件(pom.xml.merge-来源.r1313)进行三方比较。比较工具我使用的是Beyond Compare 3。如下图所示:
从上图可以看出,真正出现冲突的是version1会打上冲突提示符,version是直接被trunk的覆盖。合并后的文件如下图:
合并冲突的时候应该对这三个文件进行三方比较,具体操作可以使用上面标红的直接定位。合并的时候一定要清楚那些是需要保留分支的,那些是需要保留主干的。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图