为什么 GitHub 中的合并拉取请求会创建重复提交?

Why merged pull request in GitHub creates duplicate commit?

在我的公司,我们要求开发人员在合并到 develop 之前压缩 feature 分支上的提交。压缩后,开发人员推送到 GitHub 并登录到 GitHub 以创建拉取请求。

合并拉取请求时,我们最终会在 develop 分支的历史记录中看到 两个 提交:

  1. 一个提交说 "merged pull request"
  2. 来自 feature 分支的单个压缩提交

为什么会这样?我们怎样才能避免呢?我读过类似的 Q&A about avoiding "merge commit hell",但我的目标是使用 GitHub UI 来创建、跟踪和讨论拉取请求。

您看到的提交是合并提交;通常,只要您进行非快进合并,这些都是由 git 自动创建的,但您也可以强制始终创建一个。当您使用合并按钮时,这就是 GitHub 所做的。

如果您不想合并提交,那么您需要将提交挑选到 master 上,而不是使用合并按钮。在 GitHub 网络 UI.

中无法执行此操作

编辑:GitHub 现已在其网站 UI 中添加了 squash and merge and rebase and merge 功能 UI: