Git によるベアリポジトリの作成と開発者が複数の例
簡単なまとめ記事的ですが、 Git を使って開発環境を構築する例を記載します。
ひとつのリポジトリからベアリポジトリ (bare repository) を作り、 そのベアリポジトリを "depot" リポジトリとして、それぞれの開発者がリポジトリをクローンします。
もうちょっといいやり方があるのかもしれませんが(苦笑)、私が自分の手元の開発環境を作ったときの例として参考までに書いておきます。
元となる開発リポジトリを作る
元となるリポジトリを作ります。これはベアではないリポジトリ (non-bare, development repository) とします。
ソースコードのあるディレクトリにて、次のコマンドを実行します。
$ git init $ git add . $ git commit -m "Initial Commit"
ここでは全ファイル add してますが、もちろんインデックスに add するファイルはちゃんと選びましょう。
この点については次の情報も参考にしてください。
ベアリポジトリを作る場所から到達できるように公開
上で作ったリポジトリから、ベアリポジトリを作れるよう公開します。
物理的にマシンが異なる場合等、ネットワーク越しにつなぐ場合は Git デーモンを起動します。同じマシン内ならこのステップは不要です。
手順は "git-daemon-export-ok" ファイルを作り、Git デーモンを開始するという流れです。
$ cd /path/to/repository/ $ touch .git/git-daemon-export-ok $ cd .. $ git daemon --verbose --export-all --base-path=.
この点については次の資料も合わせて参照してください。
"Depot" リポジトリの作成
上の手順でリポジトリを公開したら、"Depot" リポジトリを作る側のマシンから --bare を指定してそれをクローンします。
$git clone --bare git://192.168.1.3/project1.git project1.git
IPアドレスやらリポジトリの名前などは適当に変えてください。
これで Depot リポジトリができました。
開発リポジトリの作成
リモート・トラッキング・ブランチ (origin/master) の作成
上記の Depot リポジトリの元となったリポジトリはクローンされただけで、この時点では Depot リモートリポジトリのトラッキングブランチ (要は origin/master) を持っていないので、それをつくりましょう。
$ git remote add origin git://iskrdevq/project1.git $ git remote update
git remote update を実行しないと origin/master ができません。
.git/config の branch "master" のセクションを追加しておきます。
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = git://iskrdevq/project1.git fetch = +refs/heads/*:refs/remotes/origin/*[branch "master"] remote = origin merge = refs/heads/master
Depot リポジトリのクローン
その他の開発者がエンリストするときには、次のコマンドです。
$ git clone git://iskrdevq/project1.git