背景:
我有两个开发分支,一个是dev,一个是develop
分别提交的是同一块代码,只是同一块代码中两者提交的有一小部分不一样,有差异,
我们的操作是这样的:
第一步:那我们先准备develop的内容
再准备dev的代码
a:先把develop的代码合并到test分支,作为前提,
b:然后再把dev的代码也往test上面合并
这个模拟的是比如甲开发人员在develop开发了一个需求
乙开发人员在dev分支开发了一个需求,其中都开发了testMethod方法,其中有一部分逻辑是一样的,只是有一部分是有差异,对于这部分差异的代码,如果我们按照下面的操作会出现某个开发人员开发的部分代码丢失的问题
模拟问题操作:
我们这里先进行a,在进行b步骤
当前分支处在test; 我把develop分支的内容往test上合并
合并完毕后test分支上就有了甲的开发部分(已把develop分支的内容,合并发布到了test分支,)
准备把乙同学的代码合并到test上
出现冲突:
解决冲突:未解决的截图
解决的结果:
上面整个冲突形成的过程及问题产生的过程:怎么正确操作?
甲同学合并自己的代码到test分支之后,然后相关测试人员对甲的需求进行测试,测试还没完毕,乙同学就也开发完了自己的需求,就把自己的代码从另外一个开发分支dev向test上合并,恰好乙同学要合并的代码和甲同学之前合并的代码有一部分是有冲突的,冲突是这样的,看下图,在甲同学合并的内容中有一个小逻辑是有的,而在乙同学开发的需求中是没有这个小逻辑的,那这部分肯定就是冲突部分,那我们在合并的时候怎么解决呢
?
乙同学最初是这样解决的,直接要了自己的部分,并把原本test分支上甲同学的部分给叉掉了,这样甲同学的这部分代码就直接消失了,很难再通过甲同学提交他的分支再带上来,因为给甲同学的假象是甲同学确实提交了这部分代码,而且也合并到了test分支,但是业务上就是不对,他自己很奇怪,去看了test分支上的代码了,突然发现缺少了一点逻辑,一看提交记录是被乙同学给合并丢失了,甲同学以为既然在test上自己的这部分逻辑是没有的,但是不是在自己develop分支上是有的吗,自己再提交一下不就行了吗?于是他自己随便在别的地方加了一个空格,又忘test合并去了,但是即使合并成功到test,但是甲的这部分独有的代码逻辑也没有再次添加到test,因为独有的那部分逻辑是在上一次甲同学提交记录中携带的,而这次又合并的只是含有空格的一个提交记录,之前独有逻辑的提交记录的已经被合并到test上过了,不会再次合并到test了,所以这次甲同学也提交不了这部分逻辑了,
说这些的意义:其实是为了提醒乙同学,再合并冲突的时候,如果遇见了别人提交的独有代码逻辑和你的有了冲突,一定不能直接将别人的去掉,因为如果叉掉了,因为这部分叉掉的代码别人已经合并到test过了,别人即使在提交这部分代码也不会再次合并到test了,重点来了,乙同学应该把自己的代码逻辑留下的同时,也把甲同学中独有的逻辑也留下,如果在逻辑上留着甲同学的代码,测试的过程中会对乙同学的逻辑有影响,那就先注释掉甲同学独有的逻辑,等乙同学需求测试完了之后,再在test上放开甲同学的特有逻辑即可;