错误
提交的分支无法合并,用 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
一般来说,非快进式的提交更优。文章来源:https://www.toymoban.com/news/detail-768936.html
不仅简洁,还能确保主分支代码的稳定。如果以快进式,回退到 E 提交就属于不稳定的版本了。一旦上线后发现 xxx 的代码有问题,我们回退到 C 就行了。文章来源地址https://www.toymoban.com/news/detail-768936.html
到了这里,关于gitlab 合并代码分支 Merge 按钮灰掉了,无法合并代码, git merge --no-ff 的作用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!