Github拉取请求未显示所有合并冲突

时间:2020-09-10 01:27:41

标签: git github merge

预先感谢您的回答。我使用基本的Github工作流程进行工作,但这种情况让我很沮丧。

以下是事件的背景和顺序:

  • 主分支中有2个文件: file1 file2
  • dev1创建的
  • master分支
  • 其他人在另一个分支dev2上工作,该分支也基于master
  • dev2被合并到master中,对 file1 file2
  • 进行了更改
  • 在对 file1 file2 进行了一堆提交之后,我为dev1创建了一个拉取请求,但是没有一个包含{{1 }}分支
  • 我期望与dev2发生大量合并冲突,因为master现在有master项更改,而我的dev2分支没有,但Github仅显示了针对 file1 none 表示 file2
  • 我手动比较了dev1dev1/file2,确实存在很多差异,而且我担心合并将覆盖master/file2
  • 现在,我什至不信任 file1 的合并冲突报告。

那么我在做什么错了?如何查看master分支与dev1分支的file1和file2之间的所有区别?我主要担心的是,我想将master分支中的所有新更改都合并到我的dev1分支中,这样就不会出现任何合并冲突。

1 个答案:

答案 0 :(得分:0)

添加到马特的评论中,

Git仅在不知道从2个 冲突更改 中选择哪个更改时才遇到合并冲突。

举个例子,让我们考虑一下master分支上版本为file1的一个名为v0的文件。假设您的同伴对file1版本v0的第1-10行进行了更改并将其合并。该文件现在在主服务器上的版本为v1。但是您仍在使用版本v0。现在有2种可能的情况:

  1. 您对30-50行进行了更改,例如(或1-10行以外的任何其他行)。在这种情况下,git会自动将您的代码与版本v1合并,以创建包含您和您的同级更改的版本v2。它使用术语auto-merging来表示。

Merging without conflicts

  1. 您将 冲突 更改为1-10之间的任意一行。如果您所做的更改与对等方完全相同,则即使git也不会显示合并冲突。但是,如果您做出了冲突的更改,则git需要询问您这2个更改中的哪一个是正确的,或者是更优选的更改,因为它无法自行决定。这就是为什么在这种情况下显示合并冲突的原因。

Merging with conflicts

希望这可以帮助您更好地理解合并冲突。