**环境配置**
本教程基于Ubuntu 14.04系统,使用git 1.9.1和Gitolite搭建Git服务器。
**安装Openssh服务器**
首先,安装OpenSSH服务器:
sudo apt-get install openssh-server
**安装Git服务器端**
接下来,安装Git服务器端:
sudo apt-get install git-core
**创建Git用户**
创建一个专门用于Git管理的系统用户(所有用户将使用此账户登录,通过公钥进行身份验证和权限控制):
sudo adduser --system --shell /bin/bash --group git sudo passwd git
(注意:git用户名可替换为其他名称。)
**生成管理员公钥**
在任意客户端生成管理员公钥(后续可更改):
ssh-keygen -t rsa
这将在您的用户主目录下创建.ssh目录,包含id_rsa(私钥,务必妥善保管)和id_rsa.pub(公钥,可公开)两个文件。 将id_rsa.pub公钥复制到Git服务器:
scp ~/.ssh/id_rsa.pub git@serverip:/tmp/admin.pub
**安装Gitolite**
安装Gitolite:
sudo apt-get install gitolite
**切换到Git用户**
切换到Git用户:
sudo su git
**导入管理员公钥**
导入管理员公钥:
sudo gl-setup /tmp/admin.pub
(如无特殊需求,可直接跳过配置步骤。)
**克隆Gitolite-admin仓库**
在客户端克隆`gitolite-admin`仓库并进行权限配置:
git clone git@serverip:gitolite-admin
克隆后的gitolite-admin目录包含keydir(存放所有用户公钥)和conf(存放配置文件gitolite.conf)两个子目录。
**权限配置(`gitolite.conf`)**
`gitolite.conf`文件用于配置用户权限。 高级权限配置请参考[Git官方文档](https://git-scm.com/book/zh/v1/服务器上的-Git-Gitolite)。
示例配置:
@admin = admin zhangsan lisi wanger // 管理员组 @guest = guest xiaoming // 来宾组 @Project_repo = T1 T2 T3 T4 T5 T6 T7 T8 T9 // 项目仓库组 repo @Project_repo // 创建仓库 RW+ =@admin // 管理员组拥有读写权限 RW int$ =@guest // 来宾组仅能读写int分支
修改完成后,提交更改:
cd gitolite-admin git add . git commit -m "权限配置更新" git push origin master
**添加其他用户**
其他用户需要生成公钥,并将公钥发送给管理员。管理员将公钥(例如`zhangsan.pub`)复制到`keydir`目录,并在`gitolite.conf`中添加相应权限配置。