1、bugRepair --> dev
目的:生产bug分支修改后,将bug分支合并到开发分支,然后在测试环境进行测试
2、问题详细描述
在gitlab上面做合并操作,出现冲突,解决冲突后提交,确认合并,发现两个分支互相合并了。
总结:如果使用 Gitlab 提供在在线冲突解决工具的话,本来是将 A --> B 合并的,结果变成了先走 B --> A 合并,再走A --> B,导致分支管理混乱。(有冲突的情况才会有这种现象)
3、分析与解决
git正常的合并分支操作:
1、切换到目标分支
2、执行合并命令,git merge 源分支
3、没有冲突合并结束,出现冲突,在目标分支上面解决冲突,执行commit命令,合并结束
gitlab做合并分支的操作:
1、新建合并请求,选择来源分支和目标分支
2、出现冲突时,可以使用 Gitlab 提供在在线冲突解决工具 / 或者取消合并请求,用本地命令合并
3、使用在线工具的话,gitlab是在源分支上面提交我们解决冲突的代码,最后点合并的时候再把源分支合并到目标分支,这就导致合并结束后,源分支与目标分支出现互相合并的效果,就产生了很多问题
解决方法:
方法1:假设A分支要合并到B分支,且出现了冲突,可以先从A分支拉一个临时分支A_bak,用A_bak分支合并到B分支
方法2:假设A分支要合并到B分支,且出现了冲突,合并完成后,对A分支做回滚 git reset / git revert 目标版本号