Git 合并了比应有的更多的提交

Git merging more commit than it should

我对 git 比较陌生(主要使用经典命令,如 checkout、push、pull)

这是我的 gitflow,我有 2 个分支 Master 和 Develop。 我正在开发,然后创建从开发到主控的合并请求。

我上周完成了它并且一切正常,与此同时我又进行了 3 次提交(在开发中),现在当我创建合并请求时它正在拉取 5 次提交(我所做的 3 次和最后一个合并请求的 2) 问题是它在我的文件之间造成了冲突。

为什么当我执行合并请求时它试图合并已经在分支中的提交?以及如何解决这个问题?

编辑:我刚刚在合并请求中看到这条消息 "The source branch is N commits behind the target branch"

Edit2(分步操作):

  1. Master & Develop 分支相同
  2. 检查开发并对其进行处理,导致 2 次提交(提交 A 和 B)
  3. 合并请求源:开发成目标:Master
  4. 两个分支相同
  5. 检查开发并对其进行处理,导致 3 次提交(提交 C、D 和 E)
  6. 尝试合并请求源:发展成目标:Master(导致冲突)

/!\ 5 个提交(A 到 E)试图合并到 Master 中的问题

按照上面的说法,master更稳定,更新最少,develop是不太稳定,更新最多的分支。(这是理想情况)

在这种情况下,当 push 提交到 Develop 分支时,您应该从 Develop 向 master 提出拉取请求(尝试在合并拉取请求时使用 rebase,不会添加额外的提交)。 然后,在这种情况下,如果没有其他贡献者将更改合并到 master,则不会发生冲突,如果是,则可能会发生冲突并需要解决并推送到 Develop 分支,并且您的 Pull Request 将更新并且冲突将消失。

可能还有另一种情况,您的 Develop 分支是默认分支(表现得像 master),而您稍后创建了 master 分支(表现得像 Develop),如果您将更改推送到 Develop 分支然后当尝试通过或不通过 PR 更新 master 分支时,它会要求您解决两个分支中的冲突,如果您尝试这样做,它将再次向分支添加相同的提交。

最后,问题是当我通过 Gitlab 执行第一个合并请求时,它创建了批准它的用户的提交,而我在开发时没有这个提交。

我的方案是将Master合并到Develop解决冲突,然后再将Develop合并到Master。

来源是简单的冲突问题:How to resolve merge conflicts in Git