Gitの履歴

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


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

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

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...

やる夫で学ぶ 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にリポジトリの情報が入ってる。リポジトリ=ワーキングツリー

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のタグとGitのタグ

 Subversionではタグやブランチはともにディレクトリとして扱われるが、Gitではタグとブランチは明確に別のものとして扱われている。そのため、SubversionのタグはGitではブランチ相当のものとして扱われる。

http://sourceforge.jp/magazine/09/03/26/0834222/3