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