Git Server

Last Update:2012/04/12

RHEL系サーバにインストール

なお、ここでの情報はScientific Linux6.2にインストールした時の情報。

EPELリポジトリを追加しておく。

yum -y install git

バージョンを確かめたところ1.7.1だった。

リポジトリを作る

バックアップを取る等、共有しないリポジトリを作る場合は以下の通り。 git以下でリポジトリを管理すると仮定して、

mkdir -p ~/git/hoge.git
cd ~/git/hoge.git
git --bare init

あとはSSHでクライアントからpushしてみる。 SSHのポートは2222に変えていると仮定して、

mkdir ~/hoge
cd ~/hoge
git init
#適当にファイルを追加
git add test.txt
git commit -m"test"
git remote add origin ssh://user@hostname:2222/home/user/git/hoge.git
git push origin master

共有するリポジトリを作る場合。

複数のアカウントが読み書き可能なディレクトリを作る必要がある。

そこで、common-gitというグループを作り、SSH接続できる各ユーザをそのグループに所属させる。 そのグループにディレクトリの権限を与える。

共有するディレクトリを作る場所はどこでも良いが、ここでは/var/common-gitとする。 また、ユーザ名はここではfooとbarである。

#グループに所属させる
groupadd common-git
usermod -G common-git foo
usermod -G common-git bar
#common-gitディレクトリを作りcommon-gitグループに権限を与える
mkdir /var/common-git
chmod 770 /var/common-git
chown -R root:common-git /var/common-git
cd /var/common-git
git --bare init --shared=True

これで空の共有できるリポジトリができた。

–shared=Trueにすると自動的にグループにのみ読み書き可能なリポジトリとして作成される。

あとは前記と同じくgit add remote してpushすれば良い。