入門Git

入門Git入門Git

秀和システム 2009-09-19
売り上げランキング : 1796

Amazonで詳しく見る
by G-Tools

Gitのメンテナ自身による、本当の意味での「Gitの使い方」を教えてくれる本。

とりあえず、著者による"まえがきの代わり"を読んでおくとよい。どんなことが書かれている本なのか一発でわかる。

入門Gitの目次はというと - gitster's journal
突然だが、Gitは素晴らしい。

――そう感じるようになったのは、ここ半年ぐらいのことである。

Git自体は一年ほど前から使い始めたが、最初は使い慣れたSubversionの、すこし便利な代替品として使っていた*1。つまり、Subversionのポリシーそのままで、インタフェースだけをGitにしていたわけだ。

しかし、あるとき思い立って、しっかり使いこなしてやろうと学習した結果、GitとSubversionの立場は逆転した。Gitによってもたらされる"自由"と"安心"の大きさは、他のバージョン管理システムVCS)と比べてもトップクラスだ。特にトピックブランチという概念、および「とりあえずコミット」が許される自由度の高さが病みつきになる。これらはSubversionではほとんど実現不可能なスタイルだ。

何が言いたいかというと、Gitを使いこなそうと思う人は、安直に「svn checkoutに相当するのは、git cloneだな」などと上っ面を撫でるだけで済ませてはならない、ということだ。

CVSユーザが単にSVNに乗り換えるだけでもそれなりのメリットはある。しかし、チェンジセットの概念を理解せずにファイルをバラバラにコミットしているようでは、SVNを使いこなしているとは言えない。享受できるメリットは制限される。

同様に、SVNユーザが単にGitに乗り換えるだけでもそれなりのメリットはある。しかし、masterブランチのみを変更し続け、気まぐれにそのままgit-pushするだけではGitを使いこなしているとは言えない。享受できるメリットは――個人的な感触ではCVSからSVNへの乗り換え時よりも――制限される。

Git - SVN Crash Course(in Japanese)にあるような"レシピ"を見てとりあえず使ってみる、というのは悪くない。しかし、学習をそこで止めて他のVCSのポリシーを維持したままGitを利用するのは無価値な行為だ。そんなことするぐらいなら、使い慣れている既存のVCSを使い続けたほうがいい。Gitの真価はGitらしく扱ってこそ発揮されるのだ。

こうなると、レシピだけでは全然足りない。Gitらしさ――Git特有の操作、Gitの流儀、Gitの哲学――を一緒に飲み込み、新たなポリシーを自分に根付かせなければならない。

そこで本書である。本書一冊あればもう安心だ。なぜなら、著者自身がレシピ本にはしていないと明言しており…

自分で考えてモノごとをするのは苦手だけどレシピ通りにならできる、だからレシピが沢山ほしい、という読者向きではない本になってしまったおそれは十分にある。電車の中で読み流せる種類の本ではないかも知れない。しかし、背景を理解して、習得した内容をしっかり自分の頭で考えて自分の置かれた状況に適用する、というタイプの読者にとっては、満足度と応用性は、料理本よりもずっと高いと評価してくれることを期待している。

ようやくgit本が出る - gitster's journal

…実際その通りだからである。

本書がすばらしいのは、「Gitらしさ」について詳しく書かれていることはもちろんだが、それよりもトラブルシューティングの説明にまるまる一章当てている点だと思う(Chapter 16 間違いからの回復)。

入門書には絶対に「失敗から回復する方法」を記載しておくべきだ。入門者はGitを恐れることなくどんどん使って、自分の血肉としていかねばならない。だが、操作ミスしたら取り返しが付かない、またはリポジトリの作成からやり直し、そんな環境で入門者が初めてのコマンドを叩いてみようという気が起きるだろうか?*2扱っている失敗パターンも、あぁこのあたりは確かにハマった、という内容のものが多い。つまり、役に立つ。

つまり、本書はその名に偽りなく、入門書としてもたいへん優れているのだ。

これまでGitは日本語での情報が少なかったので入門者は苦労していたと思われるが、ここに最高の入門書が登場した。入門者はこういう本こそ読むべきだ。

*1:git init一発でリポジトリを作成できて、チェックアウトもせずにすぐさま使えるのは便利すぎる。

*2:私もgit-reset, git-rebase, git-reflogなどの扱いを覚えてから、ようやく安心していろいろ試せるようになった。