搭建好gitolite服务器后, 服务器端会生成一个用于gitolite自管理的git库.通过git clone git@ip:gitolite-admin命令可以克隆这个库进行gitolite的管理
1. gitolite-admin下面两个目录的作用
conf/gitolite.conf 是一个授权文件, 通过它配置各个用户对各个版本库的访问权限, 后面会详细讲它的语法
keydir/ 用于保存用户的ssh公钥
2. 为gitolite新增用户
新增用户, 也就是允许新用户通过其公钥访问gitolite的服务. 具体的操作步骤如下
1. 管理员从用户获取其ssh公钥, 并将公钥以username.pub来命名, 为授权文件使用的时候提供方便.
2. 管理员将从用户处取得的公钥复制到gitolite-admin/keydir目录下
3. git add keydir/username.pub
4. git commit -m "add user username"
5. git push
此时查看服务器端git用户目录下的.ssh/authorized_keys文件会发现新增的用户公钥已经在里面了
3. 为用户更改授权
通过修改gitolite-admin/conf/gitolite.conf的配置, 然后提交改动. 就完成了授权动作.
授权文件的语法
1. 使用@符号定义用户组 后面可以加一个或多个用户名, 各个用户名使用空格进行分割
如@team_android = user1 user2 user3
组是可以嵌套的
如@staff = @team_android user3
2. 使用repo 定义一个版本库
如 repo project/android
repo project/iOS
3. 使用R W +分别控制用户对版本库的读写和强制更新的权限
如 repo project/android
RW+ = user6
指定user6对版本库project/android有读写和强制更新的权限.
4. gitolite还支持通过正则表达式来指定版本库授权
如 repo ossxp/.+
RW @team_android
5. gitolite支持用户对版本库某个分支的授权
如 repo testing
RW master junio
RW+ pu junio
6. 通过repo指定版本库的时候支持前面带目录的形式
如 repo sandbox/test1/android
授权关键字
C 代表创建 仅仅在通配符版本库授权时可以使用, 用于指定谁可以创建与通配符匹配的版本库
R 只读
W 读写
RW+ 除了读写还可以执行非快进式推送
RWD、RWD+只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等) 时才可以使用此授权指令
D的含义是允许删除和正则表达式匹配的引用, +的含义是允许强制推送
RWCD、RW+CD 各个字母的含义同上.