GIT支持基于分支的用户授权 - 最佳实践或工具?

rra*_*eja 10 git security code-access-security git-branch

对于基于产品的GIT存储库,其中存在用于维护,测试以及未来开发的分支,如何控制用户对这些分支的访问.通过访问,我的意思是即使其他人可能从中读取,他们也不应该无意中将更改推送到回购.

例如,

A - B - C - D - E - F -> master
    |   |       |
    V1  V2'     exp
        |
        V2
Run Code Online (Sandbox Code Playgroud)

"B"是用于带有标记V1的Branch的提交 - 用于产品的已发布版本.只有支持/维护工程师才能访问此项.

C用于最近冻结的预发布产品V2',并且应该只允许关键的show-stopper错误修复,因此只有某些开发人员和测试团队才能访问它.当V2从该分支释放时,只有支持应该像V1一样访问它.

E用于分支测试未来V3的新功能 - 只有开发人员而不是支持人员才能访问它.

"主"更改只能由中央集成团队在请求的基础上合并(类似于GitHub).

如何用git实现上述目标?我记得看到gitosis和其他一些外部工具 - 这些对于使用git进行安全操作至关重要,还是有其他最佳实践?

谢谢.

添加了 Gitflow最佳实践分支模型

Von*_*onC 11

限制对repo(或分支甚至目录)的推送访问的另一种经典方法是使用gitolite(实际上是一个很大的演变gitosis).

您可以在(在gitolite配置文件中)定义您需要的任何用户组或存储库组并关联RW访问权限.


注意:2013年8月:

我们发布了分支限制,可以通过存储库管理员"分支管理"屏幕进行配置.

Assembla也提供这样的保护(自2013年3月起).

GitHub上 还没有这个功能:
GitHub自2015年9月以来就有这个功能:请参阅github中的 " 如何保护"master" ".