有没有办法将Git分支上的提交限制为某些人?

有没有办法将Git分支上的提交限制为某些人?,git,Git,我希望能够确保只有我们的自动化部署解决方案能够将代码从开发分支提升到QA分支,再提升到生产分支(在这些分支中没有实际执行任何工作,除了很少执行且非常可控的修补程序)。i、 e.我想确保开发人员只在开发部门工作,不要错误地向我们的QA或生产部门做出任何承诺 实现这一点的方法是什么?使用Gitolite 虽然您可以使用在共享的本地存储库上执行一些有限的权限检查,但这通常不是一个好方法,而且很难实施。在处理多个克隆方案时,它也没有用处 当前的最佳实践是使用精心编制的分支权限。Gitolite可能相当复

我希望能够确保只有我们的自动化部署解决方案能够将代码从开发分支提升到QA分支,再提升到生产分支(在这些分支中没有实际执行任何工作,除了很少执行且非常可控的修补程序)。i、 e.我想确保开发人员只在开发部门工作,不要错误地向我们的QA或生产部门做出任何承诺

实现这一点的方法是什么?

使用Gitolite 虽然您可以使用在共享的本地存储库上执行一些有限的权限检查,但这通常不是一个好方法,而且很难实施。在处理多个克隆方案时,它也没有用处


当前的最佳实践是使用精心编制的分支权限。Gitolite可能相当复杂,但它肯定允许您将特定分支上的提交限制为单个用户或指定组。

如果您需要用于访问控制配置的GUI,那么您也可以尝试。虽然Gerrit主要是一个代码审查工具,但它还支持细粒度权限、组和不同的身份验证源(Openid、LDAP等)。

如果是共享远程存储库,您可能希望使用
预接收
钩子。但是我同意使用gitolite是一个更好的主意,因为我们的项目非常小,只使用一个共享的、中心的回购,并且不想引入一个新工具,所以我们将采用hook方法。注意,这种方法的一个很好的例子记录在“第7章定制Git”的“ProGit”一书中的“示例Git强制策略…服务器端钩子”下