我需要锁定 git repo 的 master 分支。我尝试了预提交挂钩,但它们只是客户端挂钩,但我想锁定大多数用户的主分支。谁能告诉我在 git 上预接收挂钩的步骤(我使用 github)或任何更好的锁定 master 的方法?
PS:我们的 github 许可版本不支持 gitolite。
我需要锁定 git repo 的 master 分支。我尝试了预提交挂钩,但它们只是客户端挂钩,但我想锁定大多数用户的主分支。谁能告诉我在 git 上预接收挂钩的步骤(我使用 github)或任何更好的锁定 master 的方法?
PS:我们的 github 许可版本不支持 gitolite。
Licensed GitHub 的意思是“ GitHub:enterprise
”,这也意味着,正如文章“从 GitHub:FI 迁移”中所解释的那样:不允许自定义挂钩。
(另请参阅“如何将自定义 git 挂钩添加到 GitHub Enterprise 存储库? ”)
所以我会以不同的方式处理这个问题,并且不在该服务器上维护一个存储库,而是两个存储库(第二个是第一个的克隆)。
每个人都可以推送到第一个,但只有选定的用户可以推送到第二个,这允许他/她从第一个 repo 中选择有资格推送到第二个的内容。
所以repo2
''在某种程度上代表你的' master
',而' repo1
'代表所有其他用户可以推送到的任何其他分支。
这有点类似于GitHub gist 文章。
我建议将发布工程团队分成他们自己的组织。
开发人员将不得不分叉驻留在发布工程团队中的所有存储库。
开发人员将能够master
在他们的组织内承诺。
他们必须发送拉取请求才能将他们的提交提交到release_engineering
组织中。注意:需要一些时间才能让客户相信提交到 的
master
分支与提交到 的分支acme_developers/foobar
是不同master
的acme_release_engineering/fooba
。
简单的解决方案可能是在 gitolite 或其他支持分支锁定的系统上克隆和托管存储库,并设置一个提交后挂钩以镜像到您当前的 github 存储库(如果您打算保留它)。我们目前正在使用 github 克隆来做到这一点。