2014年3月28日金曜日

Macでgitサーバを構築の巻

どうも、俺@仕事中です。
今備忘録を書かないと忘れてしまうので、サボってる訳ではありません。

僕はXcodeで開発するときにgitを使ってソース管理をしています。
標準で使えるので多くの人も使っていると思います。

gitはローカルリポジトリだけでもソース管理ができますが、
今回自分でgitサーバを立てる(共有リポジトリの作成)必要があったのでメモ。


まず、ローカルリポジトリを作成します。
これはXcodeのプロジェクトを作成する際にgitリポジトリ管理とすることで勝手にXcodeがやってくれます。

Xcodeの場合はこの手順でプロジェクト新規作成の時点で、gitのイニシャルコミットまで完了します。
内部的には
git init
git add .
git commit -m "initial commit"
まで済んでる(と思います)。


次にgitサーバを作ります。
適当な場所にサーバの公開ディレクトリとなる基底フォルダ(名前も任意)を作成します。
mkdir ~/Documents/gitserver

そしてのフォルダ内に先ほど作成したXcodeプロジェクト用のディレクトリを作成し、共有リポジトリとするためののコマンドを叩きます。
ここでは仮にプロジェクト名を「TestProject」とします。
mkdir ~/Documents/gitserver/TestProject.git
cd ~/Documents/gitserver/TestProject.git
git init --bare --shared

これで共有リポジトリが出来ました。

さて、次は外部からgitプロトコルで接続するための設定です。
まず設定ファイル(git-daemon.plist)を作成します。
cd ~/Library/LaunchAgents
vim git-daemon.plist

パスは適宜変えて下さい。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">
<dict>
 <key>KeepAlive</key>
 <false>
 <key>Label</key>
 <string>git-daemon</string>
 <key>ProgramArguments
<array>
  <string>git</string>
  <string>daemon</string>
  <string>--export-all</string>
  <string>--enable=receive-pack</string>
  <string>--base-path=/Users/koexuka/Documetns/gitserver</string>
 </array>
 <key>RunAtLoad</key>
 <true>
 <key>ServiceDescription</key>
 <string>git-daemon</string>
</true></false></dict>
</plist>

kikaigyo/plist - GitHub から拝借させて頂きました。


次に、gitをデーモンとして起動させるようにします。

launchctl load -w git-daemon.plist

最後にローカルリポジトリから作成した共有リポジトリを登録します。
git remote add origin git://MY_iMac/TestProject.git

My_iMacの部分は自分のMacのIPアドレスやホスト名、またはlocalhostでOKです。


これで設定は完了しましたので、あとは別のPCから

git clone git://MY_iMac/TestProject.git
が成功すれば完了です!!!


以上でぇぇぇぇぇぇす。