これから、Git についての本を数時間ほどかけて読んでいただくわけですが、その前に、全10章と3つの付録からなるこの本の内容を紹介させてください。
第1章では、バージョン管理システム(VCS)と「Git とは何か」を解説します。専門的な部分にはまだ触れません。Git の概要、多くの VCS があるなか敢えて Git が開発された理由、他の VCS にはない特徴、多くの人に使われている理由について述べます。また、手元に Git 環境がない読者向けに、Git のダウンロード方法や初期セットアップの方法も説明します。
第2章では、Git の使い方の基本を説明します。日常的に Git を使っておこなう操作の大半をこの章で解説します。この章を読めば、リポジトリのクローン、履歴の確認、ファイル編集、変更の追加などが出来るようになるはずです。このタイミングで諸事情により本書が灰と化したとしても、新たにもう1冊用意する必要はないでしょう。すでに Git をそつなく使いこなせるようになっているはずだからです。
第3章では、Git のブランチモデルについて説明します。Git 最大の魅力の1つとされているものです。この章を読めば、世の中にある VCS と比べて Git が如何に際立っているかがわかるでしょう。また、少し時間を取って、「Git のブランチ機能がなかったころはどうやって生き延びていたのだろう」と思いを馳せることになるかもしれません。
第4章では、Git のサーバー機能を解説します。組織内や個人のサーバーに Git をセットアップして共同作業をしたい、という読者の方におすすめの章です。そういったことは誰かにお任せしたい、という読者向けに、Git のホスティングサービスについても触れます。
第5章では、分散型のワークフローを紹介し、更に Git を使ってそれらを運用していく方法を解説します。この章を読み終えるころには、複数のリモートリポジトリを使いこなす Git の専門家になっているはずです。メールを使って Git を操ったり、いくつものブランチや受け取ったパッチを自由に行き来できるようになるでしょう。
第6章では、Git のホスティングサービスである GitHub とその機能について詳しく解説します。アカウント作成と管理方法、Git リポジトリ作成と使用方法、他者のプロジェクトへの貢献方法と自分のプロジェクトで貢献を受け付ける方法、GitHub API、Git を使う日々を楽にしてくれるノウハウ集を紹介します。
第7章では、高度な Git コマンドを解説します。こわいこわい 'reset' コマンドの使いこなし、二分探索を駆使したバグの特定手法、歴史の改変方法、リビジョン指定の詳細などなど、高度なテクニックを身につけられる章です。この章を読めば Git の理解が深まり、まさに Git のプロと呼べるレベルまであなたを引き上げてくれるはずです。
第8章では、 Git 環境をカスタマイズする方法を解説します。具体的には、フックスクリプトを使ってプロジェクト固有のポリシーを強制・推奨する方法や、自分好みの環境で作業するための設定方法などを説明します。また、コミットポリシーを強制するためのスクリプトの作り方についても触れます。
第9章では、Git とそれ以外の VCS の連携について解説します。具体的には、Subversion(SVN)環境において Git を使う方法や、Git 以外の VCS を採用しているプロジェクトを Git に移行する方法を説明します。多くの組織ではいまだに SVN が使われており、その傾向は今後もしばらく続きそうです。一方、ここまで読み進めてきた読者であれば、Git のポテンシャルがいかに高いかご存知のことでしょう。この章では、SVN を今後も使わざるを得ない読者向けに、うまくやりくりしていく方法をお教えします。また、清水の舞台から飛び降りるようプロジェクトメンバー全員を説得できた方向けに、Git 以外の VCS から Git へプロジェクトをインポートする方法も説明します。
第10章では、あまり知られていない、けれど実態はとても洗練されている、 Git の内部構造を深掘りしていきます。ここまで読み進めていれば、Git について熟知できているでしょう。スイスイと使いこなせるようにもなっているはずです。さらに一歩踏み込んで、Git オブジェクトがどのように保存されているか、オブジェクトモデルはどうなっているか、packfile の詳細、サーバープロトコルなどについて議論を深めてみましょう。本章は他の章の様々な部分から参照されています。各章を読んでいるときに詳しく知りたい項目が見つかった場合は、本章の該当部分を読んでみてください。もし、あなたが著者のように「まずは技術の詳細を把握しておきたい」というタイプであれば、本章から読み進めるといいでしょう。 どちらを選ぶかは読者の皆さんしだいです。
付録 A では、Git の使い方を様々な環境ごとに確認していきます。Git と組み合わせて使いたくなるであろう GUI ベースのツールや統合開発環境のなかから、すぐに試せるものを数多く紹介します。「コマンドラインで Git を使いたい」「Visual Studio や Eclipse で Git を使いたい」という読者の方は、こちらの付録に目を通してみてください。
付録 B では、libgit2 や Jgit といったツールを使って Git を拡張する方法を解説します。軽快に動作する複雑な独自ツールを作ろうとしていて、低いレイヤーから Git を操作する必要がある読者の方は、この付録に目を通せば概要がつかめるでしょう。
最後となる 付録 C では、主だった Git コマンドについて、本書のどの部分でどのように説明したかを振り返っていきます。掲載箇所を確認したいコマンドがある、という読者の方は、この付録を使って調べてみてください。
さあ、では本編に移りましょう。