[メモ] gitサーバの構築

あるプロジェクトで複数人でgitを使って開発しようということになったので、gitサーバを構築したメモ。環境はさくらVPS上の CentOS 5.4 です(゚∀゚)

1. gitインストール

まずgitをインストールします。。rootで作業。

remote# vi /etc/yum.repos.d/CentOS-Base.repo

して、以下を追加

[dag]
name=Dag RPM Repository for Redhat EL5
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=0
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

あとは

remote# yum --enablerepo=dag -y install git

でおk。ソースとってきて make && make install でも簡単らしいです(´∞`)

2. リポジトリ作成

/var/git 以下に置くことにしました。

remote# mkdir -p /var/git
remote# cd /var/git
remote# mkdir test.git
remote# git --bare init --shared

で、空のリポジトリができました。

remote# groupadd dev
remote# usermod -G dev user
remote# chown root:dev -R .

として dev グループの人用に設定します。サーバ側の設定は以上

3. クライアントからリポジトリを登録

ローカルで適当なリポジトリを作ってサーバ側に登録します。

local$ mkdir test
local$ cd test
local$ git init

空のリポジトリができます。次にリモートリポジトリの情報を登録します。

local$ git remote add origin ssh://user@server/var/git/test.git

でおkです。あるいは、 ssh://user@server の部分は .ssh/config のホスト名を指定しても大丈夫っぽいです。

local$ git remote add origin myhost:/var/git/test

こんな感じ。

local$ echo hoge > test.txt
local$ git add test.txt
local$ git commit -m "First commit"

で、ローカルのリポジトリに test.txt をコミットしました。これをサーバに転送します。

local$ git push origin master

と打って origin に master を push します。

4. 確認

うまく行ってそうなら、豪快にディレクトリごと削除してリモートから clone してみます。

local$ cd ../
local$ rm -rf test
local$ git clone ssh://user@server/var/git/test.git

これで元通り。