关于gitLab上merge时,两个分支代码都存在,但是却有change出现的原因解析

一、问题描述:

两个分支上都有某段代码,但是在gitLab上merge时,却有这段代码的change出现

二、容易出现此问题的场景:

线上分支master上有紧急bug需要改,于是基于master拉了个新分支去改,改好后,想把这部分代码同步到dev和test上去,但是此时dev由于有正在联调中的代码,不能直接和test,于是直接将新分支的代码分别合入dev和test,后面一切走入正轨后,dev合到test,于是发现多了不该有的change

三、复现步骤:

1.从master分支切个新分支A

2.A分支里随便修改个啥,自己开心就好

3.在gitlab上,提A=>dev分支的merge并合并(dev分支上有提测的代码)

4.在gitlab上,提A=>test分支的merge并合并(test分支上有提测的代码,合过之后,两分支代码应该相同)

5.在gitlab上,提dev=>test分支的merge,查看change,发现多了很多change,但是其实,这些change两个分支都存在

四、问题出现原因剖析

gitLab上,不能一对多,只能多对一,否则容易出现版本错乱问题,下面我们来验证下这个问题,复现的步骤,就不重复了,直接用命令来验证

1.对比dev分支和test分支,比较dev分支上有而test分支上没有的内容

git log dev ^test

执行以上命令后,结果如下,发现果然版本出现了问题

2.对比test分支和dev分支,比较test分支上有而dev分支上没有的内容

git log test ^dev

执行以上命令后,结果如下,依旧版本问题

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值