利用apt-get安裝(已安裝git-core時可不用鍵入git-core):
1
|
>sudo apt-get install git-core gitolite
|
建立gitolite的系統使用者帳號:
1
|
>sudo adduser --system --group --shell /bin//bash --disabled-password git
|
如果沒有ssh-key,需產生一組來使用,並且複製一份到git的家目錄,供稍後安裝使用(為了區分各種key,將id_rsa.pub更名)
1
2
3
4
|
ssh-keygen -t rsa -C "[email protected]"
sudo cp .ssh/id_rsa.pub /home/git
sudo mv /home/git/id_rsa.pub /home/git/calos.pub
sudo chmod 777 /home/git/calos.pub
|
切換帳號到git
使用gl-setup進行安裝,此動作需要匯入管理者的ssh-key
gitolite是利用git repository的模式下去管理專案與使用者,第一次設定專案或使用者時需clone gitolite-admin這個repository
1
|
>git clone git@gitolite-server-address:gitolite-admin.git
|
切換到gitolite-admin這個目錄時,可以看到底下有conf與keydir這兩個目錄
若要將他人加入到git的使用者,只需將他人的ssh-key複製一份到keydir這個目錄下,並git add
1
2
|
>cp /path/to/chuchu/id_rsa.pub ~/gitolite-admin/keydir/chuchu.pub
git add ~/gitolite-admin//keydir/chuchu.pub
|
建立專案與設定權限在conf/gitolite.conf這個檔案裡
1
2
3
4
5
|
>vim ~/gitolite-admin/conf/gitolite.conf
repo gitolite-admin
RW+ = calos
repo testing
RW+ @all
|
權限劃分如下:
R:只能讀取
RW:可覆寫或新增參照點
RW+:可強制覆寫(push -f)或刪除參照點
-:據絕存取 群組設定,在設定名稱前面加上「@」,後面可設定隸屬於該群組的User或Repository,下列為範例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
># Users group
@group_1 Calos Chuchu
@group_2 KYKY Johnson
#Repositories group
@group_3 project_2 project_3
repo gitolite-admin
RW+ Calos
# 在project_1,Calos可強制覆寫參照,Chuchu可建立或刪除參照,Johnson與KYKY只可讀取
repo project_1
RW+ Calos
RW @group_1
R @group_2
# 在project_2與project_3,Johnson與KYKY可以強制覆寫參照,Calos與Chuchu只可讀取
repo @group_3
RW+ @group_2
R @group_1
|
做任何更動後需push,才會生效
1
2
|
>git add ~/gitolite-admin/conf/gitolite.conf
git commit -m "Change gitolite config"
|