当前位置: 首页 > 后端技术 > Java

Jukeng的GitLab在线解决冲突(解决后是否反向合并代码操作?)

时间:2023-04-02 00:24:33 Java

项目场景:开发项目时,使用gitLab合并功能分支特性进行dev时,出现Conflicts,在线解决冲突后,点击to解决merge,结果是dev分支反向合并到featurefunction分支。被这波蜜露操作惊呆了!!!问题描述gitLab合并解决冲突后,目标分支被反向合并到源分支。原因分析:首先我们来看一下gitlab官方提供的几种冲突解决方式:交互方式解决冲突从GitLab用户界面解决不太复杂的冲突:1.去你的mergerequest。2.选择概述,然后滚动到合并请求报告部分。找到合并冲突消息,然后选择解决冲突。GitLab显示存在合并冲突的文件列表。一个简单的翻译是:**1。转到您的合并请求。选择Overview,然后滚动到MergeRequestReport部分。找到合并冲突消息,然后选择解决冲突。GitLab显示具有合并冲突的文件列表。冲突高亮:**看到这里,好像没发现什么问题,再继续往下看:注意以下重点:Resolvingconflicts将合并请求的目标分支合并到源分支中,使用版本您选择的文本。如果源分支是feature,目标分支是main,这些操作类似于运行gitcheckoutfeature;gitmergemain在本地将合并请求的目标分支合并到源分支中。也给出了一个例子:如果源分支是feature,目标分支是main,这些动作类似于运行gitcheckoutfeature;gitmergemain在本地。现在我终于明白了,当我的分支是feature/xxxx时,在解决冲突后,我将我的目标分支dev合并到我的源特性分支中,操操蛋!!!!!解决方法:方法一:临时分支替代方法:分支feature要合并到dev分支,发生冲突,可以先从feature分支拉一个临时分支feature_temp,使用临时分支feature_temp合并到dev分支。gitcheckoutfeature//先切换到feature分支gitcheckout-bfeature_temp//拉出一个新分支gitpushoriginfeature_temp//推送到远程gitbranch--set-upstream-to=origin/feature_temp然后上gitlab界面选择feature_temp分支做合并操作。方法二:回滚补救方法:假设feature分支要合并到dev分支,有冲突。合并完成后,对特性分支进行回滚操作。gitlog//找到上一个版本的commitIDgitreset--hardHEAD/commitID//强制回滚本地分支到上一个版本gitpushoriginHEAD--forceorgitpush-foriginfeature//强制回滚remote以便在gitlab解决冲突后很容易解决反向操作。还是需要多看官方文档,把地址贴在gitLab官方文档上。希望大家多多支持和关注。