gitlab 合并代码分支 Merge 按钮灰掉了,无法合并代码, git merge --no-ff 的作用

在GitLab上,作为管理员合并分支时遇到无法直接合并的情况,需解决冲突并使用`gitmerge--no-ff`命令。--no-ff参数用于非快进式合并,保持合并历史,保证主分支稳定性。快进式合并直接将主分支更新至目标分支最新,而非快进式则创建新的合并提交,有利于版本控制。
摘要由CSDN通过智能技术生成

错误

提交的分支无法合并,用 git merge --no-ff 合并。

问题发生

在 gitlab 上合并分支代码的时候,因为自己就是管理员,有时候提交代码,准备合并的时候会发现无法合并成功。网页上 Merge 按钮灰掉了,出现提示 :
在这里插入图片描述
点击 “Resolve locally” 按钮:
在这里插入图片描述
按照上图完成 Step3 然后本地修改完冲突,提交即可。

为什么要用 --no-ff 参数呢?


–no-ff 作用

先解释一下,如果这个项目只有你一个人管理,直接在main分支修改,提交,不需要新建分支,就不会发生这种报错。这种错误只发生在合并分支的时候。

–no-ff :不采用快进式(fast-forward)合并。

快进式合并

图中 main 分支为主分支,xxx 为你切出去的分支。在 xxx 上进行了A,B,C三次修改。现在提交分支 xxx 合并到 main。

          D---E---F xxx
         /
A---B---C main

快进式合并结果如下:

A---B---C---D---E---F main

Head 从 C,直接跳到 F,就问你这个快进快不快!main 主分支一次性多了三个提交信息。这意味着 main 分支可以回退到 E 提交。

非快进式合并

非快进式合并会将你分支所有的修改合并为一个新的提交 G。

          D---E---F xxx
         /         \
A---B---C-----------G main

非快进式合并结果如下:

A---B---C---G main

一般来说,非快进式的提交更优。

不仅简洁,还能确保主分支代码的稳定。如果以快进式,回退到 E 提交就属于不稳定的版本了。一旦上线后发现 xxx 的代码有问题,我们回退到 C 就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值