Mac上にgitの公開リポジトリを作る

git 1.6.3.3 on Mac OS X 10.5

以下の方法でとりあえず動く。ただし安全かどうかは保障できない。

git-coreのインストール

$ sudo port install git-core +gitweb # 一応gitwebも

リポジトリの置き場所を作る

ここでは/opt/local/var/git/repos以下にリポジトリを作ると仮定する。

$ sudo mkdir /opt/local/var/git/repos
$ cd /opt/local/var/git/repos

daemonを起動

$ sudo /opt/local/libexec/git-core/git-daemon --export-all --enable=receive-pack --base-path=/opt/local/var/git/repos

--base-pathでリポジトリの置き場所を指定する。--export-allと--enable=receive-packはまだよくわかってない。

リポジトリを作る

新規に空のリポジトリを作る場合は次を実行。

$ cd /opt/local/var/git/repos
$ sudo mkdir testrepos.git
$ cd testrepos.git
$ sudo git init --bare
$ sudo touch git-daemon-export-ok

どっかからクローンしてくる場合(例えば既存のローカルリポジトリ/path/to/cloned/reposを公開したい場合)には次を実行。こっちのがsudoをあまりしなくて済むので楽かも。

$ cd /opt/local/var/git/repos
$ sudo git clone --bare /path/to/cloned/repos ./testrepos.git
$ sudo touch git-daemon-export-ok
$ sudo touch testrepos.git/git-daemon-export-ok

どちらにせよ--bareが大事。

cloneしてみる

$ cd ~/tmp
$ git clone git://hostname/testrepos.git

ToDo

  • git-daemon-export-okってなに。
  • --export-allってなに。
  • --enable=receive-packってなに。
  • 今のとこroot権限でリポジトリが作成されてるんだけど、そこらへんどうなんだろう。
  • ネットワーク越しのローカルレポジトリから公開リポジトリを作るにはどうすればいいんだろう。
  • launchctlに登録したい。

参考資料