【问题标题】:Git conflict between different branches不同分支之间的Git冲突
【发布时间】:2022-11-03 20:30:59
【问题描述】:

我有不同的功能分支和一个主要分支:-

main
feature1
feature2
feature3

feature2 和 feature3 分支落后于 master 几个提交。在该 feature1 分支之前位于主分支之前。

首先 feature3 需要合并,然后是 feature2。

我想以一种不会丢失内容的方式合并所有功能分支,而且需要添加新内容。最后,所有功能分支的数据都应该在主分支中。

我很困惑,我应该首先将 feature1 分支合并为它在主分支之前,还是首先将 feature3 和 feature2 合并到 feature1 分支中,并从 feature1 分支创建一个拉取请求。我可以使用哪些命令来完成此操作?

所有功能 1、2、3 中的文件都已修改,因此我面临合并冲突错误。

我做了什么:-首先我从主分支创建了一个虚拟分支。将 feature3 分支的更改合并到虚拟分支中。现在,当我尝试将 feature2 分支合并到虚拟分支中时,我遇到了合并冲突错误。

有人可以在这里指导我吗?

【问题讨论】:

  • 如果它们是真的彼此独立,您可以按任意顺序合并它们至少来自 git 的 POV, git 不在乎。您可能还有其他考虑因素,这些因素与 VCS 不严格相关......比如我将首先合并 feature1,因为然后我可以将这些更改拉入 feature2,这样我就可以测试相关的 feature2 的一部分......但不依赖.
  • 除了@eftshift0 所说的之外,您还可以将这些与“章鱼合并”结合起来,这可以证明三个分支中没有一个与其他分支有任何冲突。但是章鱼合并有点棘手,并且不做任何常规合并不做的事情(实际上,上面的“证明”是因为常规合并比章鱼合并可以做更多)。
  • 这回答了你的问题了吗? Merging multiple branches with git
  • 为了测试,我首先创建了一个示例分支并合并了 feature3,然后当我为功能 2 创建合并到示例分支的拉取请求时,我收到了这个错误 Conflict: This file was modified on source and destination.

标签: git github gitlab git-merge-conflict


【解决方案1】:

您可以通过将 feature2feature3 重新设置在 master 上,使它们再次与 master 同步。只要确保你把你的主人拉到了最新的变化中。然后检查feature3 并运行git rebase master,现在你可以将它合并到master 中,对feature2 做同样的事情,你就完成了。

注意:在这里合并feature1 是先还是后并不重要。如果在合并其他两个分支后合并它,请确保也重新设置它。

【讨论】:

  • 为了测试,我首先创建了一个示例分支并合并了 feature3,然后当我为功能 2 创建合并到示例分支的拉取请求时,我收到了这个错误 Conflict: This file was modified on source and destination @jugendhacker
猜你喜欢
  • 2013-11-02
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
相关资源
最近更新 更多