Git本家 日本語Gitマニュアル 日本語Gitチュートリアル
分散型ソース管理システムということで気になっていたので調べることにしました。
ここの記事を読むとすごくわかりやすいと思います。
分散ということはレポジトリー管理を各人各所がするということなのだろう。
移動中やネットワークに繋がらない時になどに結構開発する時間があったりして、
そんな人やそんな時にはすごく良いかもしれません。
まず、とりあえず試してみることにしました。
率直な感想を先に述べると、超、柔軟、そして、早い。いいかも。です。
まず、自分のlocal サーバー debianにインストールしてみました。
調べたら、パッケージがあったので、
---------------------------------------------------------------------------------
$ sudo apt-get install git-core
---------------------------------------------------------------------------------
でインストール。
WEBサーバー上に--bareでレポジトリを作る
---------------------------------------------------------------------------------
$ mkdir /var/git/repos
$ cd /var/git/repos
$ git --bare init
で公開リポジトリを作ってそこをオリジンとする。
---------------------------------------------------------------------------------
ユーザAさんがレポジトリ作成しファイルをコミットする
---------------------------------------------------------------------------------
$ mkdir /home/userA/works/gittest/
$ cd /home/userA/works/gittest/
$ git init
$ touch testfile1.txt
$ git add testfile1
$ git commit -m 'first commit'
コミットといってもsubversionの場合だと、subversionのリポジトリにコミットすることになるが、
gitは自分の今作ったローカル(自分とこ)にコミットすることになる。
$ git remote add origin ssh://username@yourdomain.com/var/git/repos
をオリジンに指定する。これで、--bareで作ったサーバー所のレポジトリと繋がった感じに。
で、
$ git push origin master
先ほどローカルのレポジトリにコミットしたファイルを上位(オリジン)レポジトリにPUSHします。
このことで、次のユーザBが公開レポジトリからソースを引っ張ってくることができます。
---------------------------------------------------------------------------------
続いて、ユーザBさんが自分の場所で
---------------------------------------------------------------------------------
$ mkdir /home/userB/works/git/
$ cd /home/userB/works/git/
$ git clone ssh://userB@yourdomain.com/var/git/repos
これでソースをダウンロードします。
$ echo 'edited' > testfile1.txt
ファイルを編集して、
$ git commit -m 'edit file'
でコミットした後、
$ git push origin master
でオリジンに登録してやることができます。
そのあと、
ユーザAが
$ git pull origin master
でファイルを更新したりできます。
------------------------------------------------------------------
簡単にまとめ、
使うとしたら、ローカルにコミットして公開レポジトリにdeployするみたいな感じでしょうか。
各人各所の環境がなるべく一致もしくは開発者が把握している状態でなければちょっと
難しいのと思ったけど、使えたらよさげかなと思いました。
あと、最終的には、それぞれのローカルリポジトリがお互いに見合ったり、どちらかがオリジンンなったりして人間関係のように広がっていく
有機的(オーガニック)な開発手法を実現していく仕組みなのではないかとも思いました。
それを実現しているのが、
http://www.github.com
なのでしょうか。

windowsでgitしたい場合、
http://code.google.com/p/msysgit/