**環境配置**
本教程基于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`中添加相應權限配置。