gitサーバのgitoliteが便利

基本的にはチェックアウトした中に入っているReadmeに入っている通りだけど、日本語情報と最近のインストール手順が微妙に違っていたので纏め。


環境はCentOS5.7。CentOS6.1だとどこかのリポジトリに入っていた筈なのでyumから入れてもいいかもしれない。

  • インストール準備

専用ユーザを作った方が楽な気がするので、gitoliteユーザを追加

  • インストール


git clone http://github.com/sitaramc/gitolite.git

gitoliteの.bash_profileを弄って /home/gitolite/bin を追加した上でgitolite/src/gl-system-installを実行。$HOME以下に展開される。

管理用公開鍵を ssh-keygenで作成。作るときにgitolite-admin/gitolite-admin.pub等にしておくと見分けやすい。


gitolite管理用鍵のインストールは、


gl-setup ~/.ssh/gitolite-admin.pub
という風に、gl-setupの引数に管理用鍵の公開鍵を指定する。実行すると、~/.gitolite.rcの編集画面に入るが、特に必要が無ければ編集する必要は無い。

  • 管理

gitoliteユーザで管理する為に、gitoliteの~/.ssh/configを適当に編集する。


host repository
hostname localhost
User gitolite
IdentityFile ~/.ssh/gitolite-admin

とかした上で、git clone ssh://repository/gitolite-admin とすると、gitolite管理用のレポジトリがチェックアウト出来る。

  • ユーザ追加

ユーザ追加は、 gitolite-admin/keydir/ に ユーザー名.pub の形式で配置し、コミットするだけで追加される。このユーザー名を使ってアクセス制御を行う。


kamiya.pub をコミットしてユーザを追加したら、kamiyaの~/.ssh/config にも以下の様に設定を施す。


host repository
hostname localhost
User gitolite
IdentityFile ~/.ssh/kamiya

テスト用にtestingリポジトリが用意されているので、試しにチェックアウトしてみる。


git clone ssh://repository/testing

チェックアウトした gitolite-admin/conf/gitolite.conf を編集してコミットするだけで新しいリポジトリが作成される。また、Rは読み込みの身、RWで読み書き可能なユーザを表せる。以下では、新しいkamiyaというリポジトリに対して、kamiyaは読み書き可能、kamiya意外は読み取り専用という構成になっています。


repo gitolite-admin
RW+ = gitolite-admin

repo testing
RW+ = @all

repo kamiya
R = @all
RW = kamiya

+の部分は、git resetを許可するかの違いです。


以上、駆け足でしたがgitoliteのインストールと利用方の説明でした。みなさんも楽しいgitライフを!