[Git] Gitolite install

利用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

1
>sudo su - git

 

使用gl-setup進行安裝,此動作需要匯入管理者的ssh-key

1
>gl-setup ./calos.pub

 

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"
comments powered by Disqus