**環(huán)境配置**
本教程基于Ubuntu 14.04系統(tǒng),使用git 1.9.1和Gitolite搭建Git服務(wù)器。
首先,安裝OpenSSH服務(wù)器:
sudo apt-get install openssh-server
**安裝Git服務(wù)器端**
接下來,安裝Git服務(wù)器端:
sudo apt-get install git-core
**創(chuàng)建Git用戶**
創(chuàng)建一個專門用于Git管理的系統(tǒng)用戶(所有用戶將使用此賬戶登錄,通過公鑰進行身份驗證和權(quán)限控制):
sudo adduser --system --shell /bin/bash --group git sudo passwd git
(注意:git用戶名可替換為其他名稱。)
**生成管理員公鑰**
在任意客戶端生成管理員公鑰(后續(xù)可更改):
ssh-keygen -t rsa
這將在您的用戶主目錄下創(chuàng)建.ssh目錄,包含id_rsa(私鑰,務(wù)必妥善保管)和id_rsa.pub(公鑰,可公開)兩個文件。 將id_rsa.pub公鑰復(fù)制到Git服務(wù)器:
scp ~/.ssh/id_rsa.pub git@serverip:/tmp/admin.pub
**安裝Gitolite**
安裝Gitolite:
sudo apt-get install gitolite
**切換到Git用戶**
切換到Git用戶:
sudo su git
**導(dǎo)入管理員公鑰**
導(dǎo)入管理員公鑰:
sudo gl-setup /tmp/admin.pub
(如無特殊需求,可直接跳過配置步驟。)
**克隆Gitolite-admin倉庫**
在客戶端克隆`gitolite-admin`倉庫并進行權(quán)限配置:
git clone git@serverip:gitolite-admin
克隆后的gitolite-admin目錄包含keydir(存放所有用戶公鑰)和conf(存放配置文件gitolite.conf)兩個子目錄。
**權(quán)限配置(`gitolite.conf`)**
`gitolite.conf`文件用于配置用戶權(quán)限。 高級權(quán)限配置請參考[Git官方文檔](https://git-scm.com/book/zh/v1/服務(wù)器上的-Git-Gitolite)。
示例配置:
@admin = admin zhangsan lisi wanger // 管理員組 @guest = guest xiaoming // 來賓組 @Project_repo = T1 T2 T3 T4 T5 T6 T7 T8 T9 // 項目倉庫組 repo @Project_repo // 創(chuàng)建倉庫 RW+ =@admin // 管理員組擁有讀寫權(quán)限 RW int$ =@guest // 來賓組僅能讀寫int分支
修改完成后,提交更改:
cd gitolite-admin git add . git commit -m "權(quán)限配置更新" git push origin master
**添加其他用戶**
其他用戶需要生成公鑰,并將公鑰發(fā)送給管理員。管理員將公鑰(例如`zhangsan.pub`)復(fù)制到`keydir`目錄,并在`gitolite.conf`中添加相應(yīng)權(quán)限配置。