Gitolite 安裝

安裝:
# 獲取版本庫
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

新增黃色部分爲一個新的項目庫然後執行以下命令

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(最新的開發變更)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章