Gitの履歴

分散レポジトリをサポートしたバージョン管理システム


Subversionではレポジトリはひとつしかないので、コミットする場合はそこにアクセスしなければならない。

gitはレポジトリが分散するようになってて、ローカルにもレポジトリを持ち(クローンする)、元のレポジトリにアクセスしなくてもコミットできる。

チュートリアル

Subversionとのコマンド対応付、チュートリアル。これが一番手っ取り早く理解できる
Git - SVN Crash Course(in Japanese)
http://www.tempus.org/n-miyo/git-course-trans-ja/svn.ja.html

やる夫で学ぶ gitcore-tutorial

ちょっと読でみた。思ったより複雑だな…
http://motememo.g.hatena.ne.jp/keyword/やる夫で学ぶ%20gitcore-tutorial

git init
 初期化
git update-index --add {filename}
 インデックスをとる
git cat-file -t {object}
 オブジェクトのタイプを調べる
git diff-files
 差分を見る
git diff-files -p
 差分を見る(diff形式で)
git commit -m "{comment}"
 コミット(複数の手順があるのをこのコマンドひとつでまとめてる)
git diff-index -p HEAD
 ワーキングコピーとコミットツリーの差分を見る??
git diff-index --cached -p HEAD
 インデックスとコミットツリーの差分を見る??
git add {filename}
 update-index?

あってるかあってないかわからないメモ

  • コミットの前にインデックスを作成する処理がいる。「git add」か 「git commit -am ""」しなければならない?さらに、外部に送らなければならない場合は「git push」もいる。
  • .gitにリポジトリの情報が入ってる。リポジトリ=ワーキングツリー


Subversionとの連携

svnをマスターとして使うことができる。これは便利そうだな。覚えたい。

$ sudo port install git-core +svn
$ git svn clone -s http://server:port/repo/project
$ git svn dcommit # git push
$ git svn rebase  # git rebase

http://d.hatena.ne.jp/idesaku/20090323/1237825080

svn:externalsはgit submodule。でもイコールではないらしい。

移行スクリプト。でもうまくいかなかった…
http://github.com/garbas/garbasgit.svnexternals
(via http://d.hatena.ne.jp/Sixeight/20090210/1234272295 )

Subversionからの移行における注意点

空のディレクトリはバージョン管理できない

.gitignoreとか何でもいいから空ファイルを作成すればOK。

部分的なチェックアウトできない

svn checkout はパスを指定すればどの階層でもワーキングコピーを作成できる。
git clone すると今までの履歴含め、全てをコピーしなければならない。

なのでプロジェクト/モジュールごとにリポジトリを作成するのがベストだろう。

複数のモジュールを含むSubversionリポジトリをGitへ移行する
http://iteman.jp/blog/2009/02/subversiongit.html

trunk, branches, tags

Subversionはディレクトリ構造として表現
Gitはbranchesとtagsが別システム

Gitでpatchを作成して適用する手順のメモ

git-svn dcommit できなかったのでコミットID見たら、違うIDになってた...。というわけでpatchを作成。
http://blog.s21g.com/articles/680

ローカルに未コミットの変更があるけどgit-svn-dcommitした
http://runeleaf.wordpress.com/2009/01/08/git-%E3%83%AD%E3%83...

リンク


Windows用クライアント msysgit
http://code.google.com/p/msysgit/

git チュートリアル (バージョン 1.5.1 以降用)
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.h...

ユーザマニュアル
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manua...

Git/Subversionコマンド対応表
http://b4.x0.com/hiki/?Git%2FSubversion%A5%B3%A5%DE%A5%F3%A5...

NetBeans用プラグイン
http://code.google.com/p/nbgit/