開発メモ

開発関係のメモをいろいろと。たぶん。

gitの環境設定

VirtualBoxにインストールしたCentOSでいろいろ実験するシリーズ。

gitの環境を整える。

gitのインストール

以下のコマンドでインストール。開発ツールのインストールで、まとめて入ってるはず?

# yum install git

ついでに、バージョンを確認

[root@localhost ~]# git --version
git version 1.7.1

ssh経由で公開

とりあえず、ssh経由で公開。もしかして、公開って表現は間違ってる?

gitで使用するグループを作成

グループ名を「git」として作成。

# groupadd git

ユーザーをグループに追加

# usermod -G git [ユーザ名]

リポジトリを配置するディレクトリを準備

「/var/git/repos」にリポジトリを配置。gitグループから読み書きできるように設定しておく。

# mkdir -p /var/git/repos
# chgrp -R git /var/git
# chmod -R g+w /var/git

確認用にリポジトリを作成

動作確認のためにリポジトリを作成。共用にするので「--shared」を指定。サーバー側で作業する予定はないので、「--bare」で素のリポジトリにしておく。

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

「git」グループから読み書きできるように、権限を設定。

# chgrp -R git /var/git/repos/test.git

「--shared」を指定しておけば、ディレクトリのグループ権限も良きに計らってくれて便利。

とりあえず、適当なクライアントで接続してclone。いろいろ操作してpushまで動けば大丈夫。たぶん。

接続に使う情報はこんな感じになるはず。

ssh://[ユーザー名]@localhost:[ポート番号]/var/git/repos/test.git

Redmineと連携させる場合の注意点

Apacheからリポジトリを見えるようにする

Apacheをgitを使うグループに追加するのが一番楽かな?

# usermod -G git apache

SELinuxが有効な場合、権限をちゃんと設定

「/var/git/repos」にリポジトリをおいた場合、こんな感じで。

# chcon -R -h -t httpd_sys_content_t /var/git/repos

Redmineで「リポジトリに、エントリ/リビジョンが存在しません」のエラーが出た場合、SELinuxの権限が原因かも?

おまけ

リポジトリ作成スクリプトのgit版。ファイル名は「create_repo_git.sh」で。

#!/bin/sh

# repository base dir
repo_base="/var/git/repos/"

# #############################################

# parameter check
if [ $# -eq 0 ]; then
    echo "> ./create_repo_git.sh repository_name"
    echo "repository create to -> $repo_base"
    exit
fi

# target dir
target=$repo_base$1

# check exist
if [ -d $target ]; then
    echo "already exist -> $target"
    exit
fi

# make repository
mkdir -p $target
git init --bare $target
chgrp -R git $target

# ok
echo "create git repository -> $target"

情報元

私の使うGitコマンドまとめ 基本コマンド編 - Log for Backup - Naoki_Rinの学習
http://d.hatena.ne.jp/naokirin/20111201/1322576109

Git - サーバー用の Git の取得
http://git-scm.com/book/ja/Git-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E7%94%A8%E3%81%AE-Git-%E3%81%AE%E5%8F%96%E5%BE%97