Gitosisでリポジトリとメンバーを追加し、リポジトリを使ってみる手順

Gitosisのインストールが終わり、Gitosis用の管理ユーザの作成ができているものとする。

 

リポジトリを管理するするリポジトリをクーロンする。

git clone gitosis(Gitosis用の管理ユーザ名)@YOURDOMAIN:gitosis-admin.git

 

gitosis.conf の編集。

cd gitosis-admin
vi gitosis.conf

 

以下、新しいリポジトリhoge-repoを作成し、USER2とUSER3を追加する場合の編集例。

[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = USRNAME
[group hoge-repo]
writable = hoge-repo
members = USRNAME USER2 USER3

太字部分を追加する。

 

keydirディレクトリの中には対応する鍵、USER2.pubとUSER3.pubを追加する。

 

サーバにプッシュする。

git add .
git commit -am 'リポジトリhoge-repoとユーザーUSER2, USER3を追加'
git push

 

このとき、

error: insufficient permission for adding an object to repository database ./objects

というエラーが出る場合は、共有リポジトリを作るときに–sharedを指定しなかったため。

以下のコマンドを試してみる。

git config --list # core.sharedがないことを確認
git config --global core.shared true

 

作成されたリポジトリを使ってみる。

まずは最初のコミット。

mkdir hoge-repo
cd hoge-repo
touch README
git init
git add README
git commit -am 'initial commit'
git remote add origin gitosis(Gitosis用の管理ユーザ名)@YOURDOMAIN:hoge-repo.git
git push origin master

 

サーバにあるリポジトリをクローンする。

git clone gitosis(Gitosis用の管理ユーザ名)@YOURDOMAIN:hoge-repo.git

 

ローカルのファイルを編集してプッシュを試してみる。

cd hoge-repo
echo "Hello world!" > README
git add .
git commit -am 'edit README'
git push