我想要实现的目标如下: 同事在@coworkers小组, 客户在@clients组中。
Git仓库应该可以为每个人读写,但是应该有特殊的分支。 即我创建了一个新的分支“实习生”,而@coworkers应该有RW + access,但客户端不应该是R或W.
我以为我可以通过
实现这一目标repo myrepo
- intern = @clients
RW+ = @clients @coworkers
但这不起作用。
答案 0 :(得分:9)
根据a discussion与gitolite的作者一起,分支机构无法进行读访问限制:
Gitolite的每分支内容仅适用于写访问。它 不适用于读访问,因为git本身没有 支持做出这种区分。
答案 1 :(得分:3)
现在可以使用最新版本的gitolite v3.x来限制对gitolite分支的读取访问权限使用gitolite的partial-copy feature
partial-copy
部分中的ENABLE
行$GIT_CONFIG_KEYS = '.*'
示例:如果您希望客户端只能访问deploy
分支
repo my-repo
RW+ = @coworkers
repo my-repo-deploy
RW deploy = @clients
- = @clients
- VREF/partial-copy = @all
config gitolite.partialCopyOf = my-repo
如果git抱怨它无法删除主分支,则可以在服务器上使用此命令:
sudo git config --system receive.denyDeleteCurrent warn
sudo git config --global receive.denyDeleteCurrent warn
客户端现在可以使用如下命令克隆my-repo-deploy存储库的deploy分支:
git clone -b deploy git@your-server:my-repo-deploy
答案 2 :(得分:0)
我不是一个gitolite专家,但我认为规则是按顺序处理的。你试过简单地倒转最后两行吗?也就是说,首先授予@clients和@coworkers权限,然后拒绝@clients访问实习生。