ここ3年ほどで一気に広がった感のあるソースコード管理システム(SCM)のGitについて、その成り立ちやら設計思想やらにまで踏み込んで解説している本。Gitの基本的な使い方から内部の構造についてまでかなり幅広い内容を取り扱っている。
正直に書くと、この本ダメです。何がダメかというと、どういう読者をターゲットにしているのかが見えないんです。git のちょー基本的なコマンドを解説しているかと思いきや、内部で使っているSHA1の一意性の構造について語り出したりしていて、まとまりがものすごく悪いです。それにつられてか章立てもなんかいまいち。SCMにほとんどなじめていない初心者をターゲットにしているのか、ばりばり.gitの中まで見ているような人をターゲットにしているのかわからないです。
その点を棚に上げれば、なかなか知ることができないGitの内部構造についてや、無閉路有向グラフで表されるコミットのチェーンについての解説もあって、さらさら読み進めながら時々濃い内容のとこを熟読する程度にはよい。特に、分散レポジトリであるGitを理解する上で最大の難所といってもよい、ブランチがないのに分岐とマージが存在する無閉路有向グラフの様子(gitkで表示されるアレ)を理解するのは、Git初心者からの脱却には必須だったりするので、9章10章あたりは読んどいて損はないと思う。
最近注目を浴びつつある、SourceForgeやGitHubに代表されるようなSCMホスティングサイトについて紹介している付録Bは、正直必要なかったんじゃないかなぁ。
というわけで、よほどGitのことについて詳細に知りたいという人をのぞいて、あんまりこの本はお薦めしないです。SCM初心者には敷居が高い箇所が多いです。他のSCMになじみがあるGit初心者でも、他のコマンドの使い方解説を重視した本の方がよいです。そこそこGitに慣れてきたら、そもそもこの本に書いてあるような使い方はほぼ理解しているだろうしGitの内部構造なんて知っても仕方ないし、やっぱりこの本は必要ないです。
あとは、まだまだ進化を続けている感のあるGitなので、細かなコマンドの使い方はオンラインマニュアル読んだ方が早いです。個人的に大好きなコマンド「git status」「git show --stat」「git diff --stat」「git log --graph --left-right A...B」「git diff (SHA-1) | patch -p1 -R」