如何防止一个git分支被合并到另一个分支?

3
在常见(基于 Git 的)开发流程中,一个人维护一个 master 分支和一个 next(或 dev)分支,用于测试目的:
  • 功能分支从 master 开始,并合并到 next 进行测试。如果被认为稳定,功能分支可以合并到 master
  • master 定期合并到 next
  • next 定期回溯(例如,在发布后)。
  • next 分支永远不应该合并到 master 分支

能够自动防止将next直接或通过基于next的另一个分支合并到master将是有用的。 如何使用Git来实现这一点?

注意:正如这个问题中所描述的那样,可以使用 Git 钩子来阻止对具有完全访问权限的远程存储库进行此类合并。然而,这(可能)不适用于像 BitBucket 或 GitHub 这样的服务,因此我寻求一种适用于本地存储库的解决方案,或者一种适用于只有有限管理访问权限的远程存储库的解决方案。


为什么不在本地安装钩子? - Aaron Digulla
链接中的钩子是一个更新钩子,只对远程存储库有意义。也许很简单,但如何将其翻译为本地钩子呢? - Patrick Sanan
1
这似乎是一个很棒的问题,我也需要一个答案。令人惊讶且令人不安的是,它没有得到更多的关注和基于钩子的答案,因为它似乎对于安全使用此工作流程至关重要。我想要做到这一点,因为正如 OP 描述的那样(使用“通过另一个分支”变体),这已经浪费了我的团队大量的时间和烦恼。 - Benjohn
1个回答

1
当你真的想使用Github/Bitbucket时,不要给任何人写入存储库的权限。只接受pull请求。这样,你可以检查合并请求包含的内容,并在看到不想要的内容时拒绝它们。
自动化此过程的方法是创建一个本地存储库,添加一个钩子来进行检查,然后将pull请求拉入新的本地“验证”存储库(这不应该是你的正常工作存储库,所以你总是可以抛弃它)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接