GitHub 拉取请求:合并前压缩而不快进

GitHub Pull Request: Squash before merge without fast-forward

GitHub 提供三种合并 PR 的选项:

  1. 合并拉取请求:没有快进合并。
  2. 压缩并合并:压缩提交并执行快进合并。
  3. 变基并合并:将所有提交变基到另一个提交。

是否有可能在合并之前自动压缩提交,然后在不快进的情况下应用合并?

一个选项当然是在手动合并之前压缩它们,然后使用选项 1,但是这样做不能强制,并且需要再次审查 PR 并且合并被阻止,直到它被批准。

如果政策是每个 PR 都只包含一个提交,那么在进行(正常)合并之前压缩是可以的,即使是强制推送也是如此。我个人认为这有点傻;历史就是历史,我看不出假装不是有什么好处。但是 chacun à son goût。

and the PR needs to be reviewed again and the merge is blocked until it is approved.

但是你的问题来了。如果 GitHub 在 PR 获得批准后删除合并的能力,仅仅因为你对 PR 分支进行了新的推送,而你不喜欢那样,那么你的 GitHub 操作设置是错误的你的工作流程。改变它们。

(例如,在我们的工作流程中,一旦获得批准,便始终获得批准;新的提交不需要重新批准(当然,您可以作为 double-check 请求重新批准)。)