O’Reilly『実用Git』を読んでみた-その1

 先日、O’Reilly Japanから実用GitをEbookで購入したので、とりあえず少し読んでみた。

http://www.oreilly.co.jp/books/9784873114408/

 今まで自分はSubversionばかり使ってましてGitは未体験。読みながら実際に操作して覚える感じでゆっくりペースで読んでます。

 とりあえず1,3~5章まで読了(2章はインストールだけなので飛ばしました)。ここまでは『分散』バージョン管理システムとしての特徴なんかは無し。3章は簡単なコマンドの使い方の説明。あっさりと説明してあって自分的には丁度良かったですが、正直バージョン管理システムという物を触った事が無いと理解に苦しむと思います。「まえがき」には他のバージョン管理システムを知らなくてもOKのような事書いてあるけど、この本で始めるのは少し辛いかな(^_^;)。

 4章と5章はObjectの格納方法とIndexについて、更にファイル管理に必要なコマンドが書かれてます。ただ使うだけならObjectの格納方式とか意識する必要無いような気もするんですけど後で役に立つのかな?(実際自分はSubversionがどういう風にbdbにファイル差分を格納しているのか知らないし、、、) もっとも、個人的には興味のある所だったので結構楽しく読めました。ただ、いまいち微妙な説明が多い気も。

 余談ですけどgit rm –cachedの説明でgit addされた時に登録されたobjectが残っている事はちゃんと説明が欲しかったなぁ。

 svnだとsvn addは次回commit時にレポジトリに追加する事をmarkするだけです。その操作をcommit前に取り消す事でレポジトリにゴミが残る事はありません。

 gitの場合git addされた時点でindexとobjectが登録され、git rm –cachedではindexのみが削除されobjectは削除されないのでこのままだとどのtreeやcommitからも参照されないゴミが残る事になります。これはgit gcで回収(削除)されますが、そこら辺が ふれられてませんでした。

 大した問題じゃないので無視出来る話なんですけど、svnで慣れてたのでファイル作成→git add→編集→git commitとかやってしまっていたらなんか大量に参照されないobjectが登録されてました(^_^;)。

 gitの場合、新規ファイルがCommitしても良い状態でgit add; git commitをすべきな感じですね。

 とりあえず、今日はここまで。今週中にもう少し読み進めてみたいと思います。