gitolite 的安装和配置

服务端软件安装及配置

以 Gentoo 系统为例,步骤如下:

  1. 安装软件 emerge -avgk gitolite

  2. 切换为 gitolite 用户 sudo su - git

  3. 导入管理员的 SSH 公钥。注意,这里的文件名为 “用户名.pub” 这种格式。关于 SSH 公钥认证的更多细节可以参考 SSH 公钥认证

    git@scms ~ $ gl-setup ./liuzx.pub
    The default settings in the rc file (/home/data/git/.gitolite.rc) are fine for most
    people but if you wish to make any changes, you can do so now.
    
    hit enter...
    creating gitolite-admin...
    Initialized empty Git repository in /home/data/git/repositories/gitolite-admin.git/
    creating testing...
    Initialized empty Git repository in /home/data/git/repositories/testing.git/
    [master (root-commit) c33027d] gl-setup ./liuzx.pub
     2 files changed, 8 insertions(+)
     create mode 100644 conf/gitolite.conf
     create mode 100644 keydir/liuzx.pub
    

在这个过程中会需要编辑 ~/.gitolite.rc 这个文件,先不做任何修改,以缺省文件保存 即可。

Gitolite 配置

Gitolite 的权限配置和帐号管理都是通过 Git 來管理的,因此需要在另外一台机器上 检出其配置后来进行管理。假设上面配置的服务器名为 scms。

  1. git clone git@scms:gitolite-admin
  2. 放置每个帐号的公钥到 keydir 目录下,文件名规范为“用户名.pub”。
  3. 切换到 gitolite-admin 目录,编辑conf/gitolite.conf 文件,配置相关的权限。
  4. 提交所有的修改到 git,并 push 到服务端。
$ git clone git@scms:gitolite-admin
正克隆到 'gitolite-admin'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
接收对象中: 100% (6/6), done.
$ git add keydir/test.pub
$ vi conf/gitolite.conf
$ git add conf/gitolite.conf
$ git commit -m 'add user test'
$ git push origin master

gitolite.conf 的配置细节可以参考 官方文档这里