みなさんこんにちはこんばんは。イッシーですʕ→ᴥ←ʔ。前回はSubversionでのバージョン管理でしたが世はすっかりGitムードです。プラスアールでも使い方を学びつつ四苦八苦しながらGitに移行してます。そこで今回はGitでの環境構築の部分をまとめてみました。

  • 解説は、プロジェクト名:sample.plusr.biz、ユーザ名:ishimotoとしてます
  • ルート権限で作業します

■サーバ側

【step1】グループを作る

プロジェクト名と同じ名前のグループを作りましょう。重複を防ぐためにもドメイン名が良いかと思います。

/usr/sbin/groupadd sample.plusr.biz

【step2】グループにユーザを追加

グループにプロジェクトユーザを加えます。

gpasswd -a ishimoto sample.plusr.biz

以下のコマンドでも同様の操作が可能ですが、今まで追加したグループを列挙しなければなりません。

/usr/sbin/usermod -G sample.plusr.biz,hoge.plusr.biz,fuga.plusr.biz ishimoto

【step3】新規リポジトリの作成

以下のコマンドで新規リポジトリをサーバー上に作成します。

mkdir sample.plusr.biz
cd sample.plusr.biz

【step4】リポジトリの作成

以下のコマンドで新規リポジトリをサーバー上に作成します。

git --bare init

※bareとは作業ファイルがないからのリポジトリです。

vi description

以下のように任意のプロジェクト名を記述します。

sample.plusr.biz.repository

※リポジトリ名を記述しなかった場合、push時に以下のエラーが発生します。

*** Project description file hasn't been set
error: hooks/update exited with error code 1
error: hook declined to update refs/heads/master

【step5】権限設定

グループのユーザに書き込み権限を与えます。

chmod -R 0775 /usr/local/development/repos/sample.plusr.biz
chmod -R g+s /usr/local/development/repos/sample.plusr.biz    #(1)
chgrp -R sample.plusr.biz /usr/local/development/repos/sample.plusr.biz

※上述の(1)がない場合、pushをしたときに以下のエラーが発生する。

error: failed to push some refs to 'ssh://ishimoto@123.123.123.123:1234/usr/local/development/repos/sample.plusr.biz'

■クライアント側

まず、環境に合わせて以下をインストールします。

Mac
Git for Mac OS X
Win
msysgit

【step1】準備

プロジェクト用のディレクトリを作り、配下で以下ののコマンドを実行します。

mkdir sample.plusr.biz
cd sample.plusr.biz
git init

【step2】初期状態を準備

フレームワークなどのファイルを配置した後に以下のコマンドを実行します。

git add .
git commit -m “import :)
git remote add origin ssh://ishimoto@123.123.123.123:1234/usr/local/development/repos/sample.plusr.biz
git push origin master

※ちなみに間違えてリモートをセットしたときは以下のコマンドで再設定できます。

git remote set-url origin ssh://ishimoto@123.123.123.123:1234/usr/local/development/repos/sample.plusr.biz

リモートを確認するには以下のコマンドを使用します。

git remote -v

※さらにちなみにですが僕はコメントに顔文字を入れたりします。(。・ω・)ノ゙

【参考】

いかがでしょうか?率直なところ、まだ僕はSubversionからGitに乗り換えた恩恵を授かっていません。しかし、開発人数が増加すれば分散リポジトリの恩恵を授かれるはずです。次回は、実際のGit環境での開発について書いてみたいと思います。。。あ、WinのGit環境がわからないな・・・(●´⌓`●)

Post Navigation