(附Git的cherry pick神操作)如何解决gitlab合并分支请求时的代码改动(commits和changes)与本地分支的(commit&push)不一致的问题

目录

问题现象

问题分析

步骤1:

步骤2:

步骤3:

步骤4:

情况1:

情况2:

情况3:

情况4:

解决方法

步骤5:

步骤6:

步骤7:

步骤8:

步骤9:

拓展:Git的cherry pick神操作

cherry pick的作用:

cherry pick(筛选合并)和 merge(合并)的区别:

拓展:步骤4的合并请求被同意后该如何解决?


问题现象

        最近在项目中遇到一个问题:

        使用IDEA开发工具在自己创建的代码分支(以下称“本地分支B”)commitpush代码时,change记录是这样的:

        可以看到本次提交到本地分支B的代码涉及到8个文件的改动,但是当我在gitlab上发起合并请求时,却发现commits数和changes数有异常:

        遇到这种情况该如何解决呢?


问题分析

        当我们发现gitlab合并分支请求时的代码改动(commits和changes)与本地分支的(commit&push)不一致时,这说明本次合并存在隐藏的代码差异问题,此时应该拒绝和关闭本次合并请求,不要进行代码合并

        那么,就来分析一下出现这个问题的原因吧!


        操作步骤如下:

步骤1:

        在IDEA开发工具中,切换到本地分支A,然后拉取远程分支A的最新代码

步骤2:

        基于本地分支A创建本地分支B

步骤3:

        在本地分支B改动代码、提交并推(commit&push)至远程分支B

步骤4:

        在gitlab上发起合并请求,合并本地分支B远程分支A。

注意:

        此时应该还未点击同意合并请求按钮(即本地分支B还未真正合并到远程分支A)。

        已经点击了同意合并请求按钮(即本地分支B已经合并到远程分支A了)的场景在文末的最后一节【 拓展:步骤4的合并请求被同意后该如何解决?】中也会提到解决方法       


        操作完上面这些步骤后,就出现了开头提到的问题现象。

        但是认真梳理了这些操作步骤之后,并没有找到问题原因,因为这些步骤没有问题,那么问题到底是为啥呢?

        经过我不断地测试和问题复现,才终于确定:上面这些操作步骤确实没有问题,而问题发生的原因其实是在这些操作步骤之前就存在了!!!

        其实在很久之前,为

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值