服务器操作系统:ubuntu 10.04.4 64bit desktop
Git版本:1.7.0.4
服务器ip地址:192.168.1.101
在服务器上已经拥有账户:tom,以此用户为gitolite管理员账户
一、在服务器上安装git
1. 在服务器上安装git。
$ sudo apt-get install git-core
2. git的基本配置,如账户名,email地址等。
二、ssh服务的安装与账户配置
1.以普通账户(此处为tom,将作为gitolite的管理员账户)登录系统,安装openssh服务。
$ sudo apt-get install openssh-server
2.添加名字为git的账户,并为此账户设置密码。此账户是gitolite的工作账户。
$ sudo adduser --system --shell /bin/bash --group git
$ sudo passwd git
三、安装gitolite
1. 在账户tom的/home/tom/目录下,下载gitolite的代码。
$ git clone git://github.com/ossxp-com/gitolite.git
2. 创建安装文件夹
$ sudo mkdir -p /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks
3. 安装
$ cd gitolite/src
$sudo ./gl-system-install /usr/local/bin /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks
4. 生成管理员的ssh密钥,并存放在/tmp/下
$ ssh-keygen
$ scp ~/.ssh/id_rsa.pub 192.168.1.101:/tmp/admin.pub
5. 配置管理员为gitolite的管理员
$ sudo su – git
$ gl-setup /tmp/admin.pub
6. 在管理员的.ssh目录下面增加一个名字为config的文件,内容如下:
host gitolite
user git
hostname 192.168.1.101
port 22
identityfile ~/.ssh/ id_rsa
7. 测试管理员是否能登录gitolite
$ ssh gitolite
四、 Gitolite管理员配置
1. 以管理员账户(nick)登录,clone管理员配置文件
$ git clone gitolite:gitolite-admin
2. 对需要开通访问gitolite服务器的团队成员,收集ssh密钥
在各自的机子上执行
$ ssh-keygen
$ mv ~/.ssh/id_rsa.pub usr_name.pub
3. 将收集的usr_name.pub放在本节第1步clone下来的管理员的gitolite-admin目录下的keydir/目录中,并提交到git中
$ git add keydir/usr_name.pub
$ git commit –m “add usr”
$ git push
4. 在团队成员的机子上配置ssh对gitolite的访问
在新加入的团队成员的~/.ssh/目录下增加config文件,内容如下
host gitolite
user usr_name
hostname 192.168.1.101
port 22
identityfile ~/.ssh/ usr_name
5. 客户端测试
$ ssh gitolite
五、版本库的建立与权限控制
1. 以gitolite的管理员账户(此处为tom)登录服务器,clone版本管理的gitolite-admin,如果已经clone过,可以跳过此步骤,直接进行第2步。
git clone gitolite:gitolite-admin
2. 用vi等编辑器打开gitolite-admin/conf/gitolite.conf。
3. 新建一个项目团队成员组,将成员的名字写进这个组。
@TEAM1 = usr_name1 usr_name2 usr_name3
4. 为项目团队TEAM1新建一个版本库,此处名字为project1,并开通所有人的读写权限。
repo project1
RW+ =@TEAM1
5. 可以为特定成员,特定目录,特定分支进行权限管理。
repo project1
R =usr1
RW+ =usr2 usr3
RW+ [path name] =usr4
6. 提交配置到git版本库。
$ git add conf/gitolite.con