【问题标题】:Merging master into dev/branch will overwrite dev/branch将 master 合并到 dev/branch 将覆盖 dev/branch
【发布时间】:2020-09-14 03:49:12
【问题描述】:

我正在尝试将 master 合并到我的 dev/branch 中,它有一个新组件 X。合并完成后,dev/branch 中的这个组件 X 将被删除,因为它从未存在于 master 中。

我得到的唯一合并冲突似乎来自我在组件 X 编程期间从未接触过的无关文件。

这里发生了什么,我该如何解决这个问题并以正确的方式合并?

【问题讨论】:

  • 合并 master 到 dev 不应该抹去全新的变化。 dev 上的任何 new 都将保留,master 上的任何 new 也将保留。如果 exists 在两个地方都发生了更改,您将遇到合并冲突。这就是合并的工作原理。要么您错误地解决了合并冲突,要么历史记录中出现了非常错误的情况。
  • 不可能从这里判断出你的哪些描述是完全错误的,因为你没有提供你正在查看的证据,只提供你的结论,但这不是唯一错误的地方.无论“组件”实际上应该指什么,您的描述都与合并行为的任何内容都不匹配。展示您正在查看的实际证据。

标签: git merge git-merge merge-conflict-resolution


【解决方案1】:

为什么要在 dev/branch 中合并 master。你不应该将 dev/branch 合并到 master 中吗? 另外,你的假设是不正确的。

一旦合并完成,这个来自 dev/branch 的组件 X 将被删除,因为它从未存在于 master 中。

当您将 master 合并到您的 dev 分支时。所有在 master 而不是在你 dev/branch 上的提交将被添加到你的dev/branch。在你的情况下,同样的事情正在发生。而你所说的不相关代码实际上是在 master 上,它将被合并到 dev/branch 并且 git 可能不知道它使用哪个分支的代码来创建一个合并,让你陷入冲突。

我建议,您使用git merge --abort 中止合并,并花一些时间考虑您真的想将master 合并到dev/branch 吗?你到底想达到什么目标。

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多