Gitolite是git的顶层的访问控制层。
下面是一些特性:
设置gitolite
这是使用gitolite的第二步,在install之后。这个步骤也是发生在server端。
安装完软件之后就可以使用了,使用之前先要设置。
首先你需要有一个public key文件。
假设这个管理员叫做alice,这个公钥可能被命名为alice.pub。
然后主机用户运行
gitolite setup -pk alice.pub
如果这个命令被成功的执行了,那么就完成了设置。
如果有警告,那么可能你提供的这个公钥在服务器上具有获取终端的权限,它不会工作。
通常,gitolite运行在一个用户不能直接访问的主机上,你采用其他的一些用户名登录,然后使用su -git命令。
在此,没有密钥被用来获取shell访问,因此没有冲突。
另外的方法是使用两个不同的密钥,用别名来区分。
setup命令还有其他的用处,因此在安装完了之后你可能还会用到它
当有疑问的时候,运行gitolite setup,它不会造成什么损害,当然了如果你有上千个仓库的时候它会有些慢。
这是使用gitolite的第三步
克隆管理员repo,来到使用公钥设置的工作区,运行
git clone git@host:gitolite-admin
注意,不能包括repositories/部分
你可以在最后包含.git,但是这是可选的
如果这步成功了,那么你可以增加用户,repo仓库,或者其他的事情了。
如果这步失败了,去看看ssh的文档。
下面的命令要求用命令行访问服务器。
它们通常是一次性或者很少活动的。
日常操作大致如下:
gitolite的大部分功能来自于conf/gitolite.conf文件。
这里面制定了对repos的访问控制细节。
任何关于增加用户的操作都来自于这个文件
下面是个例子
@staff = dilbert alice # line 1 @projects = foo bar # line 2 repo @projects baz #line3 RW+ = @staff #line 4 - master = ashok #line5 RW = ashok #line6 R = wally #line7 config hooks.emailprefix = ['%GL_REPO] ' #line8
从下面的链接学到更多
通常来说,所有的元素都是用空格隔开的;没有逗号,分号,以及其他的东西。
注释通常用shell的样式,#
用户名和repo名字一样,它们都以字母开始,但是可以用点,下划线,减号连接
用户名可以选择用@符号后面跟一个至少包含一个点号的域名
组名与用户名类似,以@开头
repo的名字里可以包含/符号
默认没有续行的功能,你不需要它们。
gitolite允许你将配置文件分为多个
使用下面的语法来包含进来
include "foo.conf"
可以使用通配符include *.conf
或者使用子目录foo/bar.conf repos/*.conf