6.坑!!!gitlab在线合并解决冲突后反向合并问题(cherry-pick)

目录

项目场景:

问题描述:

原因:

避坑:

解决问题:


项目场景:

在开发项目时,由于新做的需求是下一版本上线的功能,不能在dev上直接开发,所以在dev分支基础上新建一个分支tmp。也就是在dev和tmp同时进行开发。

问题描述:

开发一段时间后,需要将dev合并到tmp。登陆gitlab在线将dev合并到tmp,在合并时出现了conflicts,在线解决冲突之后,再点击确定合并,结果反向将tmp合并到dev分支了!!

原因:

官方解释是,解决冲突后会将目标分支tmp合并到源功能分支上。参考博主分析:【精选】巨坑的GitLab在线解决冲突(解决后做了反向合并代码的操作?)_gitlab 冲突-CSDN博客

避坑:

不要gitlab在线合并分支,最好在本地用工具合并(idea、vscode)。

解决问题:

如果已经出现反向合并了(tmp多次提交的日志已经穿插在了dev提交日志中),现在需要在dev分支上移除掉tmp分支提交的代码。我选择的方式是查看dev、tmp的提交记录,查找dev最早没有被tmp污染的commitID,然后基于此commitID新建一个新的分支dev_copy。然后通过git cherry-pick commonID 命令将dev上在此commitID之后的提交记录一一合并到dev_copy。最后废弃掉被污染的dev分支,留下dev_copy分支作为开发分支。 一次次的cherry-pick比较繁琐,但还是解决了问题。

在用cherry-pick之前我有试过git revert、git reset 等几种方式,结果代码越来越乱......

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值