使用gitosis,是否可以指定写权限,让用户可以用自己的名字自由推送到分支,但不能与master合并?例如 $USER/test1 .. $USER/test5
这意味着您可以为每个项目仅托管一个存储库,而不是为同一项目托管多个存储库,特定于每个用户:
project1-user1
project1-user2
project1-user3
...
project5-user1
project5-user2
project5-user3
Gitolite项目提供了这个功能。这是在 Perl 中对 Gitosis 的重写。它的代码可以在github上找到
当我第一次写这个答案时,它不支持gitweb
或git-daemon
集成,但现在支持。
Gitosis 控制对存储库的访问,但不是通过分支或提交。因此,您可以将 master 本身放在具有只读访问权限的存储库中,并让用户将他们的各个分支推送到另一个存储库(或每个用户一个,如您所说)。我还没有看到任何人扩展 gitosis 以获得更细粒度的控制。
如果你真的需要限制你的用户访问并且你想使用 Git,那么也许你应该只通过电子邮件获取补丁并将你的 repo 保持为只读。
Gitolite 很好地支持分支或标签名称的权限。
在 Pro GIT 书中,本节详细解释了如何设置和配置每个分支的访问权限。在该页面中搜索“配置文件和访问控制规则”。