一、 安裝git
1. # yum update
# yum installcurl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
# mkdir -p/data/git
# groupadd git
# useradd -g git-d /data/git -s /bin/bash git
# passwd git //設置git用戶密碼
2. 改變git目錄權限
# chown -Rgit:git /data/git
# chmod -R 2755/data/git
3.下載git
$ wget https://www.kernel.org/pub/software/scm/git/git-2.6.2.tar.gz
$ tar -xzvfgit-1.7.2.3,tar.gz
$ cdgit-1.7.2.3
$ ./configure--with-curl=/usr/local
$ make &&make install
$ ln -s /usr/local/git/bin/* /usr/bin/
$ git--version #查看版本號,確實git是否安裝成功
二、 安裝gitolite
# su –git
$ pwd
/data/git
$ mkdirbin
$ ls
$ git clone https://github.com/sitaramc/gitolite.git
或者git clonegit://github.com/ossxp-com/gitolite.git
$ ls
bin gitolite
$ ./gitolite/install --to /home/git/bin/
$ ls bin/
commands gitolite gitolite-shell lib syntactic-sugar triggers VERSION VREF
三、 客戶端生成密鑰對,爲gitolite配置管理員
1.Windows安裝git forwindows2.6.2,安裝完後打開Git Bash
$ ssh-keygen–f admin –C [email protected]
$ scpadmin.pub [email protected]:/tmp/admin.pub
2. 切換到git用戶,爲gitolite配置管理員
$ bin/gitolite setup -pk /tmp/admin.pub
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git
/Initialized empty Git repository in /home/git/repositories/testing.git/
WARNING: /home/git/.ssh missing; creating a new one
(this is normal on a brand new install)
WARNING: /home/git/.ssh/authorized_keys missing; creating a new one
(this is normal on a brand new install)
$ ls
bin gitolite projects.list repositories
四、 服務器ssh開啓公鑰登錄
1. vim/etc/ssh/sshd_config,將下面幾句前面的#號去掉
RSAAuthenticationyes
PubkeyAuthenticationyes
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysCommandnone
AuthorizedKeysCommandRunAsnobody
2.重啓ssh
service sshdrestart
五、 配置gitolite,添加用戶,添加庫,用戶權限管理
1. windows安裝TortoiseGit
2. 新建git文件夾,進入,右鍵Git Clone…
URL: [email protected]:gitolite-admin.git
勾選Load Putty Key,選擇你的私鑰(此處需使用ppk格式私鑰,可以使用puttygen將私鑰admin轉換成admin.ppk)
點擊OK即可clone服務器上的gitolite-admin文件夾到本地
3. 添加用戶
管理員將其他用戶的公鑰(如dong.pub)複製到gitolite-admin/keydir/下
4. 添加庫
進入gitolite-admin/conf/,右鍵Git Bash Here,
$ vimgitolite.conf (此文件用於添加庫和配置用戶對庫的權限)
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
repo git-dong #新建庫git-dong
RW+ = admin dong #設置用戶admin dong有讀寫權限
將修改push到服務器,即可添加庫和用戶。
$ cd ..
$ gitstatus #查看git庫狀態
$ gitadd keydir/dong.pub conf/gitolite.conf 或者git add .
$ gitcommit –m “add repo git-admin;add user dong”
進入gitolite-admin文件夾,右鍵TortoiseGitPush
點擊OK即可。
5. 用戶權限管理
在客戶端clone gitolite-admin.git,編輯gitolite-admin/conf/gitolite.conf配置各用戶權限。
1 @team1 = zc
2 @team2 = aws zc
3 repo gitolite-admin
4 RW+ = admin
5
6 repo ossxp/.+
7 C = admin
8 RW = @all
9
10 repo testing
11 RW+ = admin
12 RW master = dong
13 RW+ pu = shuai
14 RW cogito$ = lijun
15 RW bw/ = houhou
16 - = anony
17 RW tmp/ = @all
18 RW refs/tags/v[0-9] = dongshuai