Gitolite - 如何禁止快进合并?

Gitolite - how to prohibit fast forward merging?

我正在尝试在我们的办公室采用 git 分支策略,但它要求所有合并都在不使用快进的情况下进行。由于我们都使用不同的工具来处理 git,我想知道是否可以配置 Gitolite 以禁止快进合并推送? 是否有可能检测到这种合并?

git config merge.ff false

https://git-scm.com/docs/git-config#git-config-mergeff

不,检测不到,因为它根本不是合并。

您可以检测到推送到 gitolite 的领先提交是合并提交(例如:至少有 2 parents 的提交)。

您可以在服务器端的 update hook 中执行此操作:

  • 如果分支名称(第一个参数)与您的一个受保护分支匹配,
  • 检查推送的提交(第三个参数)是否有两个 parents