(Linux)(Git) Gitolite Server - Git ACL Server

  1. Server端

    • 安裝git

      sudo apt-get install git-core git-doc gitk git-gui
      
  2. Server端

    • 安裝gitolite

      git clone git://github.com/ossxp-com/gitolite.git
      sudo mkdir -p /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks
      cd gitolite/src
      sudo ./gl-system-install /usr/local/bin \
      /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks
      
    • 更改gl-setup

      sudo vi /usr/local/bin/gl-setup
      

      其中

      GL_PACKAGE_CONF=/usr/local/share/gitolite/conf
      
  3. Server端

    • 增加系統使用者git
    • 增加新群組git
    • 設置使用者git為可登入shell

      sudo adduser --home /home/git --system --shell /bin/bash --group git
      
    • 將使用者git加入使用者群組ssh,
      (其中ssh群組已經先被建立,且ssh server僅允許ssh群組可連入ssh server)

      sudo adduser git ssh
      
  4. Client端

    • 建立gitolite管理者使用憑證(admin.pub,admin),
    • 並傳admin_name.pub至server端~/底下
  5. Server端

    • 安裝gitolite管理者使用憑證(admin.pub,admin))

      sudo su - git
      gl-setup ~/admin.pub
      
  6. 使用SSH憑證key1進行git clone gitolite-admin管理庫

    git clone git@server_ip:gitolite-admin
    
  7. gitolite-admin管理庫

    • conf/gitolite.conf 文件,設定git版本庫,分支等讀寫權限
    • keydir/*.pub 用戶SSH公鑰
    • 增加新用戶,只要將新用戶SSH公鑰加入keydir/中,再執行git push即可