关于java:巨坑的GitLab在线解决冲突解决后做了反向合并代码的操作

70次阅读

共计 1539 个字符,预计需要花费 4 分钟才能阅读完成。

我的项目场景:

开发我的项目的时候,应用 gitLab 合并性能分支 feature 到 dev 上的时候,呈现了 Conflicts,在线解决抵触之后,点击解决合并,后果反向的把 dev 的分支合并到了 feature 性能分支,这波蜜汁操作过后我就懵了!!!

问题形容

gitLab 合并解决抵触之后,反向将指标分支合并到了源分支。

起因剖析:

首先理解一下 gitlab 官网提供的解决抵触的几个模式:

Resolve conflicts in interactive mode To resolve less-complex conflicts from the GitLab user interface:
1.Go to your merge request.
2.Select Overview, and scroll to the merge request reports section.

  1. Find the merge conflicts message, and select Resolve conflicts. GitLab shows a list of files with merge conflicts.

简略翻译一下就是:
**1. 转到你的合并申请。

  1. 抉择 Overview,而后滚动到合并申请报告局部。
  2. 找到合并抵触音讯,而后抉择解决抵触。GitLab 显示具备合并抵触的文件列表。抵触突出显示:**


看到这如同感觉也没发现啥问题,接着持续往下看:
留神以下这句要害:

Resolving conflicts merges the target branch of the merge request into the source branch, using the version of the text you chose. If the source branch is feature and the target branch is main, these actions are similar to running git checkout feature; git merge main locally

翻译一下这句就会发现问题了:
解决抵触会应用您抉择的文本版本 将合并申请的指标分支 合并到源分支 中。
还举了个例子:
如果源分支是 feature,指标分支是 main,这些动作相似于在 git checkout feature; git merge main 本地运行。
这下就终于了解了,当我的分支是 feature/xxxx 的时候,解决完抵触,将我的指标分支 dev 合并到了我的源性能分支下面去了,oh shit 这该死的操作!!!!!

解决方案:

办法 1:长期分支替代法:分支 feature 要合并到 dev 分支,且呈现了抵触,能够先从 feature 分支拉一个长期分支 feature_temp,用长期分支 feature_temp 合并到 dev 分支。

git checkout feature // 先切换到 feature 分支
git checkout -b feature_temp // 拉进去新的分支
git push origin feature_temp // 推送到远端
git branch --set-upstream-to=origin/feature_temp 

而后再 gitlab 界面下面抉择 feature_temp 分支去做合并操作。

办法 2:回滚补救法:设 feature 分支要合并到 dev 分支,且呈现了抵触,合并实现后,对 feature 分支做回滚操作。

git log // 找到上一个版本的 commitID
git reset --hard HEAD/commitID  // 强制回退本地分支到上一个版本
git push origin HEAD --force 或者 git push -f origin feature // 强制回退近程

这样就轻松解决了 gitlab 解决抵触后的反向操作,还是要多看看官网文档,贴一下地址 gitLab 官网文档,心愿大家多多反对和关注。

正文完
 0