安裝:
# 獲取版本庫 git clone git://github.com/sitaramc/gitolite # 創建bin目錄,用於存放安裝後的文件 mkdir -p ~/bin # 將gitolite安裝到bin目錄 gitolite/install -to ~/bin # 使用YourName.pub公鑰初始化版本庫 gitolite setup -pk YourName.pub
#
YourName.pub是管理員的公鑰 這個公鑰最好用linux服務器本身生成的
管理用戶:
添加刪除用戶
綠顏色是新增用戶的過程紅顏色是刪除用戶的過程
管理也是在服務器上,自己隨便找個路徑,把管理的文件夾clone下來。
- [root@localhost luxiaoshuai]# git clone [email protected]:gitolite-admin.git
- 正克隆到 'gitolite-admin'...
- The authenticity of host '192.168.101.233 (192.168.101.233)' can't be established.
- RSA key fingerprint is f1:c6:64:d7:77:c8:c2:db:88:4f:0b:94:73:6e:da:59.
- Are you sure you want to continue connecting (yes/no)? root^H^H^H^H^H
- Please type 'yes' or 'no': yes
- Warning: Permanently added '192.168.101.233' (RSA) to the list of known hosts.
- remote: 對象計數中: 6, 完成.
- remote: 壓縮對象中: 100% (4/4), 完成.
- remote: Total 6 (delta 0), reused 0 (delta 0)
- 接收對象中: 100% (6/6), 完成.
- 檢查連接... 完成。
- [root@localhost luxiaoshuai]# ls
- git git-2.4.3 gitolite-admin
- [root@localhost luxiaoshuai]# cd gitolite-admin/
- [root@localhost gitolite-admin]# ls
- conf keydir
- [root@localhost gitolite-admin]# cd keydir/
- [root@localhost keydir]# ls
- id_rsa.pub
- [root@localhost keydir]# rz #上傳用戶的pub key
- [root@localhost keydir]# git add .
- [root@localhost keydir]# ls
- id_rsa.pub win7Client.pub
- [root@localhost keydir]# git status
- 位於分支 master
- 您的分支與上游分支 'origin/master' 一致。
- 要提交的變更:
- (使用 "git reset HEAD <文件>..." 撤出暫存區)
- 新文件: win7Client.pub
- [root@localhost keydir]# git commit -a -m "add user by admin"
- [master 7b76e81] add user by admin
- Committer: root <[email protected]>
- 您的姓名和郵件地址基於登錄名和主機名進行了自動設置。請檢查它們正確
- 與否。您可以對其進行設置以免再出現本提示信息:
- git config --global user.name "Your Name"
- git config --global user.email [email protected]
- 設置完畢後,您可以用下面的命令來修正本次提交所使用的用戶身份:
- git commit --amend --reset-author
- 1 file changed, 1 insertion(+)
- create mode 100644 keydir/win7Client.pub
- [root@localhost keydir]# git config --global user.name "admin"
- [root@localhost keydir]# git config --global user.email "[email protected]"
- [root@localhost keydir]# git commit --amend --reset-author
- [root@localhost keydir]# git push origin master
- 對象計數中: 4, 完成.
- 壓縮對象中: 100% (4/4), 完成.
- 寫入對象中: 100% (4/4), 688 bytes | 0 bytes/s, 完成.
- Total 4 (delta 0), reused 0 (delta 0)
- To [email protected]:gitolite-admin.git
- 02d99b9..96ea9c2 master -> master
- [root@localhost keydir]# ls
- id_rsa.pub win7Client.pub
- [root@localhost keydir]# rm -f win7Client.pub
- [root@localhost keydir]# ls
- id_rsa.pub
- [root@localhost keydir]# git commit -a -m "delete"
- [master 281149f] delete
- 1 file changed, 1 deletion(-)
- delete mode 100644 keydir/win7Client.pub
- [root@localhost keydir]# git push origin master
- 對象計數中: 3, 完成.
- 壓縮對象中: 100% (2/2), 完成.
- 寫入對象中: 100% (3/3), 295 bytes | 0 bytes/s, 完成.
- Total 3 (delta 0), reused 2 (delta 0)
- To [email protected]:gitolite-admin.git
- 96ea9c2..281149f master -> master
- [root@localhost keydir]# ls
- id_rsa.pub
- [root@localhost keydir]# rz
- rz waiting to receive.
- zmodem trl+C ȡ
- 100% 408 bytes 408 bytes/s 00:00:01 0 Errors
- [root@localhost keydir]# ls
- id_rsa.pub luxiaoshuai.pub
- [root@localhost keydir]# git add .
- [root@localhost keydir]# git commit -a -m "
- > add"
- [master 382b12b] add
- 1 file changed, 1 insertion(+)
- create mode 100644 keydir/luxiaoshuai.pub
- [root@localhost keydir]# git push origin master
- 對象計數中: 4, 完成.
- 壓縮對象中: 100% (4/4), 完成.
- 寫入對象中: 100% (4/4), 680 bytes | 0 bytes/s, 完成.
- Total 4 (delta 0), reused 0 (delta 0)
- To [email protected]:gitolite-admin.git
- 281149f..382b12b master -> master
- [root@localhost keydir]# ls
- id_rsa.pub luxiaoshuai.pub
新加項目庫
[root@localhost conf]# cat gitolite.conf
repo gitolite-admin
RW+ = id_rsa
repo testing
RW+ = @all
repo gitTest
RW+ = id_rsa luxiaoshuai
repo gitolite-admin
RW+ = id_rsa
repo testing
RW+ = @all
repo gitTest
RW+ = id_rsa luxiaoshuai
新增黃色部分爲一個新的項目庫然後執行以下命令
git commit -a -m "add project by luxiaoshuai"
git push origin master
執行完成後,項目自動就已經建好了,不過是空的。
項目權限管理
項目權限劃分
- 1. 對所有的分支擁有讀寫、重置、添加和刪除的授權。
- 2. 對master有讀寫權限的人
- 3.對developer有讀寫權限的人
- 4. 對項目只有讀的人
@admin = luxiaoshuai yangpeng
repo gitolite-admin
RW+ = id_rsa
repo testing
RW+ = @all
repo gitTest
RW+ = id_rsa luxiaoshuai
RW+ developer3$ = yangpeng
repo gitTest2
RW+ = luxiaoshuai yangpeng
repo gitTest3
RW+ = luxiaoshuai #1. 對所有的分支擁有讀寫、重置、添加和刪除的授權。
RW+ master = yangpeng #2. 對master有讀寫權限的人
RW+ develop$ = yangpengDev #3.對developer有讀寫權限的人
R develop$ = yangpengR #4. 對項目只有讀的人
項目分支劃分- master(生產代碼)
- developer(最新的開發變更)