4

我需要锁定 git repo 的 master 分支。我尝试了预提交挂钩,但它们只是客户端挂钩,但我想锁定大多数用户的主分支。谁能告诉我在 git 上预接收挂钩的步骤(我使用 github)或任何更好的锁定 master 的方法?

PS:我们的 github 许可版本不支持 gitolite。

4

2 回答 2

2

Licensed GitHub 的意思是“ GitHub:enterprise ”,这也意味着,正如文章“从 GitHub:FI 迁移”中所解释的那样:不允许自定义挂钩
(另请参阅“如何将自定义 git 挂钩添加到 GitHub Enterprise 存储库? ”)

所以我会以不同的方式处理这个问题,并且不在该服务器上维护一个存储库,而是两个存储库(第二个是第一个的克隆)。

每个人都可以推送到第一个,但只有选定的用户可以推送到第二个,这允许他/她从第一个 repo 中选择有资格推送到第二个的内容。
所以repo2''在某种程度上代表你的' master',而' repo1'代表所有其他用户可以推送到的任何其他分支。
这有点类似于GitHub gist 文章

我建议将发布工程团队分成他们自己的组织
开发人员将不得不分叉驻留在发布工程团队中的所有存储库。
开发人员将能够master在他们的组织内承诺。
他们必须发送拉取请求才能将他们的提交提交到release_engineering组织中。

注意:需要一些时间才能让客户相信提交到 的master分支与提交到 的分支acme_developers/foobar是不同masteracme_release_engineering/fooba

于 2012-09-01T19:09:03.410 回答
1

简单的解决方案可能是在 gitolite 或其他支持分支锁定的系统上克隆和托管存储库,并设置一个提交后挂钩以镜像到您当前的 github 存储库(如果您打算保留它)。我们目前正在使用 github 克隆来做到这一点。

于 2012-09-01T19:22:08.477 回答