2013-08-03

CentOS 6.4 に Gitolite で git リモートリポジトリを立てた

概要

さくらの VPS に git リモートリポジトリを立てたので作業ログを残しておく。


手順

  1. サーバ側で必要なライブラリのインストール
  2. $ sudo yum update
    $ sudo yum install perl-Time-HiRes -y
    
  3. ユーザー追加
  4. $ sudo useradd --shell /bin/bash --home /home/git git
    # パスフレーズはなし
    
  5. 手元の Mac で ssh-keygen する
  6. $ cd ~/.ssh && ssh-keygen -t rsa -f git-admin
    
  7. 生成した公開鍵をサーバに転送する
  8. $ scp -P [ポート番号] ~/.ssh/git-admin.pub [ユーザー名]@[ホスト名]:~/
    
  9. サーバで公開鍵を /home/git に移動して所有権を git ユーザーに変更する
  10. $ sudo mv ~/git-admin.pub /home/git/git-admin.pub
    $ sudo chown git:git /home/git/git-admin.pub
    
  11. git ユーザーになる
  12. $ sudo su - git
    
  13. Gitlite をインストールする
  14. $ mkdir ~/tmp && cd ~/tmp
    $ git clone git://github.com/sitaramc/gitolite
    $ mkdir -p $HOME/bin
    $ gitolite/install -to $HOME/bin
    $ $HOME/bin/gitolite setup -pk ~/git-admin.pub
    
    $ rm -rf ~/tmp
    $ rm -f ~/git-admin.pub
    
  15. 手元の Mac から Gitolite 経由でアクセスできるように設定する
  16. $ vim ~/.ssh/config
    
    Host git-admin
         HostName [ホスト名]
         User git
         Port [ポート番号]
         IdentityFile ~/.ssh/git-admin
    
  17. 使ってみる
  18. # ローカルPCでファイルをクローンしてみる
    $ cd ~ && git clone git-admin:gitolite-admin
    
    # Gitoliteにユーザーを追加する
    $ cd ~/gitolite-admin && cp ~/.ssh/id_rsa.pub ./keydir/[追加するユーザー名].pub
    
    $ vim conf/gitolite.conf
    
    repo testing
        RW+     =   [追加するユーザー名]
    
    $ git add . $ git commit -m "add user: [追加するユーザー名]" $ git push # リポジトリを作成する $ vim ~/gitolite-admin/conf/gitolite.conf
    repo     my-project
         RW+     =     git-admin
    
    # 変更したファイルをサーバーへ送る $ git commit -am "add repo: my-project" $ git push


これでプライベートリポジトリが完成。結構お手軽だった。

Gitolite は Gitosis よりも高機能で、リポジトリ・ブランチ・ファイルのアクセス権やグループの設定などができるため管理がしやすそう。



参照文献



@ymkjp