redmine+git環境構築

技術文書
2013/08/26

gitインストール

  • ローカル環境

gitインストール
[admin]$ yum install git-core

git設定
[admin]$ git config --global user.name "Yoshiharu Yamamoto"
[admin]$ git config --global user.email
[admin]$ git config --global core.quotepath false

git設定確認
[admin]$ git config --list

gitoliteインストール

gituserユーザを作成
[vps]$ useradd --shell /bin/bash --home /home/gituser gituser

ユーザー登録

SSH公開鍵作成

[user]$ cd ~
[user]$ ssh-keygen
[user]$ mv user user.pub .ssh/

gitサーバ設定
[user]$ vi .ssh/config
HOST gitserver.vps
HOSTNAME 219.94.235.108
USER gituser
PORT 22
IDENTITYFILE ~/.ssh/user

[user]$ chmod 600 ~/.ssh/config

公開鍵を管理者端末へ
[user]$ scp .ssh/user.pub :/home/admin/
[admin]$ cd /User/haltyt/Sites/gitolite/gitolite-admin/keydir/
[admin]$ scp :/home/admin/user.pub .

リポジトリへ反映
[admin]$ git add user.pub
[admin]$ git commit -m "新規ユーザー登録"
[admin]$ git push

リモートリポジトリを取得できるか確認
[user]$ git clone ssh://gitserver.vps/testing

gitoliteで作成したリポジトリをredmineから参照可能にする

[vps]$ cd
/var/lib/git

ミラーリポジトリ作成
[vps]$ git clone --mirror /home/gituser/repositories/i-generation.git
Initialized empty Git repository in /var/lib/git/i-generation.git/

ブラウザから閲覧できるようにパーミッション変更
[vps]$ chown -R apache:apache i-generation.git

フックスクリプト作成
[vps]$ su - gituser
[vps]$ vi repositories/i-generation.git/hooks/post-receive
#!/bin/sh
/usr/bin/git push --mirror /var/lib/git/i-generation.git

パーミッション変更
[vps]$ chmod 700 repositories/i-generation.git/hooks/post-receive

リポジトリ作成

gitolite管理用リモートリポジトリ取得
$ git clone gitolite.vps:gitolite-admin

リポジトリ追加
$ vi gitolite-admin/conf/gitolite.conf
repo i-generation
RW+ = @all

リポジトリ反映
$ git add
$ git commit -m 'create repository i-generation'
$ git push origin master

リポジトリ初期化

プロジェクトへ移動
$cd /Users/haltyt/Sites/i-generation/src/git/aff_test_new

初期化
$git init

対象リストへ登録
$git add .

リポジトリへコミット
$git commit -m 'initial project'

ローカルリポジトリをリモートリポジトリへコピー

リポジトリ短縮URL設定
$git remote add origin gitolite.vps:i-generation.git

URLを変更する場合は
$git remote set-url origin gitolite.vps:i-generation.git

現在の設定を確認
$git remote -v

リモートリポジトリへ反映
$git push origin master

ファイル