我在GitHub公司帐户上有一些Git私有存储库,我不希望任何人推送某些特定的分支(如master,develop和beta或模式)。我也尝试定义一些钩子,但我希望这可以在GitHub上完成,而不是在客户端上使用预推钩。
所以简单地解释我的问题,我想:
git push origin develop
由于分支名称而被服务器拒绝( GitHub ),但我不希望通过pre-push hook检查客户端,我真的希望GitHub进行检查并且拒绝它。
此外,如果只允许某些用户这样做,但最初只为每个人禁用它就足够了。
答案 0 :(得分:26)
好的,经过长时间的聊天,我得到了IRC的回答。因为GitHub不允许每个分支权限都不预先发布取消挂钩,所以我必须处理forks和pull请求,或者在每个dev的机器上添加预推钩。以下是我得到的答案的一部分:
分叉存储库。然后开发人员可以使用他们自己的存储库版本,而不必担心提交到错误的分支。然后上游的某个人总是可以合并到应该提交的任何分支中。
是的,但我们是一家公司,我们不希望我们所有的开发人员都有叉子
为什么不呢?
那么他们应该能够将他们的分支推送到一个共同的仓库,以便与其他开发人员在同一个功能上工作。例如。
阅读https://help.github.com/articles/using-pull-requests。您仍然可以在多个货叉之间发送补丁。这是git构建于
的模型我知道,但我希望能够以中心方式快速查看任何功能/修补程序的实际工作,...
简而言之:GitHub不支持每个分支的权限
答案 1 :(得分:7)
我知道这篇文章很老了,但我相信对于那些正在寻找答案的人来说,这可能仍然有用。
嗯,现在可以在GitHub上使用 最近GitHub引入了Protected Branches功能,这使得它成为可能:
祝你好运。受保护的分支在存储库管理员选择保护的分支上阻止Git的多个功能。受保护的分支:
- 不能强行推送
- 无法删除
- 在所需状态检查通过
之前,无法将更改合并到其中- 在批准所需审核之前,无法将更改合并到其中
- 无法编辑或从网络上传文件
答案 2 :(得分:4)
你正在寻找的钩子是pre-receive
和update
- 前者每次推动一次,后者每推一次;但重要的是,这些是服务器方面的钩子。
答案 3 :(得分:0)