有没有办法修改中央存储库的配置以禁止任何远程推送到主分支(使用git)?它只会通过发布所有者的分支合并进行更新。
有可能在儿童存储库中进行,但不幸的是,它并不总是万无一失,很容易忘记在新机器上执行 - 无法防止意外推送。开发人员应该能够从任何分支拉出并推回到任何分支,master
除外,我们希望将其视为只读。 git
可以吗?或者我们正在尝试错误的工作流程。
更新tl;博士:感谢Charles Bailey,答案是检查主人并添加以下配置:
receive.denyCurrentBranch = true
答案 0 :(得分:13)
您应该查看git发行版的update
目录中名为update-paranoid
的示例contrib
挂钩。它允许您设置每个分支的ACL,限制允许谁推送到哪些分支。这样您就可以将master更新为仅发布所有者。
我不太确定你的意思是“只通过分支合并更新”。我假设您的中央存储库是裸的,在这种情况下,分支通常只通过推送更新。在推送合并提交和不合并提交之间git没有概念上的区别我不确定你的限制主数据更新类型的标准是什么。
如果您要推送到非裸中央存储库并且master
始终是已签出的分支,那么您只需将配置变量receive.denyCurrentBranch
设置为true
或{ {1}}。