2012-11-21

GitServer using Gitolite 架設筆記

操作環境:
  • Ubuntu 12.04
  • git version 1.7.9.5
  • gitolite v3.x.
安裝步驟:

  1. sudo apt-get install git
  2. sudo adduser --system git --shell "/bin/bash" #建立單獨帳號來安裝及管理gitolite,此帳號不要可以ssh登入,避免安全問題
  3. su git # 切換成 git 權限,以下步驟皆使用git帳號完成
  4. mkdir $HOME/.ssh
  5. ssh-keygen -t rsa #建立git的ssh public/private key
  6. git clone git://github.com/sitaramc/gitolite
  7. mkdir -p $HOME/bin
  8. cd gitolite
  9. gitolite/install -to $HOME/bin
  10. export PATH=$PATH:$HOME/bin #將bin加到PATH中才能夠順利安裝成功
  11. gitolite setup -pk git.pub #git.pub為步驟3.所產生之public key
p.s 如果有安裝成功,則在$HOME/repositories/gitolite-admin.git底下應該有如下圖的檔案


管理教學:

# 第一次安裝完成後
  1. mkdir $HOME/wrodstation
  2. git clone git@host:gitolite-admin
之後的帳號管理、資料新增/刪除皆是在此gitolite-admin.git資料夾內完成,才commit到repository
# 建立使用者帳號(使用git帳號)
  • client
  1. cd $HOME
  2. mkdir .ssh
  3. ssh-keygen -t rsa
  4. ssh-add #ssh連線出現Agent admitted failure to sign using the key解法
  5. send the user.pub to git server
  • server
  1. mv user.pub $HOME/git/workstation/gitolite-admin/keydir
  2. chown git user.pub
  3. git add keydir/user.pub
  4. git commit -m 'add user.pub'
  5. git push
  • client連線測試
git clone git@host:testing #因為是認#HOME/.ssh/private key所以若出現git@host password: 就是代表帳號並沒有成功建立
user@localhost:~/testing$ git pull
sudo chown user .git #出現error: can't open .git/FETCH_HEAD: Permission denied的解法
#刪除使用者帳號
  1. git rm keydir/user.pub
  2. git commit -m 'remover user.pub'
  3. git push
使用教學:
  • client
  1. git clone git@host : repo_name
  2. cd repo_name
  3. 編輯程式
  4. git add .
  5. git commit -m 'comment'
  6. git push origin master
  7. git status #確認目前git狀態
  • server
  1. cd  $HOME/git/workstation/gitolite-admin/conf
  2. vi gitolite.conf
  3. repo repo_name ...
  4. git add .
  5. git commit -m 'commnet'
  6. git push

參考









沒有留言: