PR:この記事にはアフィリエイトリンクが含まれます。
Gitの内部構造を本で学ぶと、普段見えないcommitやブランチの動きをコマンドの結果と結びつけて理解できます。変更がどこに保存され、参照がどう動くかも見えてきます。
オブジェクトやpackfile、reflogは変更の保存や復旧を知るときに出会う用語です。入門書と内部を掘り下げる本では、扱う深さが違います。まず3冊の特徴を早見表にまとめました。
おすすめ本早見表
| 本 | 参考価格(税込) | 内部構造の扱い | 向いている人 |
|---|---|---|---|
実用 Git 第3版 | 4,620円 | オブジェクト、packfile、ref、reflogを詳しく解説 | Git経験があり、保存や参照の仕組みを学びたい人 |
ゼロから学ぶGit/GitHub 現代的なソフトウェア開発のために | 2,640円 | 第11章で.git、オブジェクト、参照、indexを扱う | 基本操作から内部の主要概念まで学びたい人 |
図解即戦力 Git&GitHubのしくみと操作がこれ1冊でしっかりわかる教科書 | 2,420円 | commit、ステージング、HEADなどを図解 | Gitをこれから使う初心者 |
価格は公式の希望小売価格を目安にしています。実売価格は時期や販売店で変わるため、購入時に確認してください。
Git内部の地図
Gitはファイル内容やディレクトリの状態をオブジェクトとして記録します。ブランチやHEADなどの参照を使い、どのcommitを指すか管理します。
作業中のファイルは作業ツリーにあり、次のcommitに含める内容はindexに登録します。commitを作ると、その時点の構成がtreeとして記録されます。commitオブジェクトはtreeや親commitを指します。
ブランチ切り替えや誤操作から戻せる理由は、オブジェクトとindex、参照の関係を知ると読み解けます。まずこの3つを押さえましょう。
オブジェクトとは
blobはファイル内容を、treeはディレクトリ構成を表し、commitは変更のまとまりを記録します。注釈付きtagもオブジェクトの一種で、commitなどに名前やメッセージを付けます。
commitはtreeへの参照や親commitなどを記録します。treeをたどると各パスのblobに行き着き、ある時点のディレクトリ構成を再現できます。
オブジェクトには内容から計算されるIDが付きます。同じ内容なら同じIDになり、そのIDを使ってGitがオブジェクトを参照します。ファイルのパスと内容を別々に見ると、名前を変更した場合も整理しやすいでしょう。
indexとcommit
indexは次のcommitに入れる内容を組み立てます。ステージングエリアとも呼ばれ、登録したファイルの状態をcommit候補として持ちます。
たとえば1つのファイルを編集したあと、変更の一部だけをステージできます。その状態でcommitすれば、作業ツリーに残る別の変更は含まれません。git statusで違いを確かめる習慣は実務でも役立ちます。
commitはindexの内容をtreeにまとめ、親commitや作成者、メッセージと一緒に記録します。Gitの内部構造を学ぶと、git addが登録するものとgit commitで確定する内容の違いがはっきりします。
packfileの役割
新しいオブジェクトは.git/objectsに個別の圧縮ファイルとして置かれることがあります。数が増えるとGitはオブジェクトをpackfileにまとめ、保存容量や転送量を抑えます。
packfileでは、似たオブジェクトを差分形式で格納することがあります。連続するcommit間で大きなファイルの変更が一部にとどまれば、packfileは元になる内容と差分を使って保存します。必要な内容はGitが組み立てます。
packfile内のオブジェクトを探すため、対応するインデックスファイルも使われます。普段の操作で中身を直接編集する必要はありません。こうした形式を知ると、cloneやfetch、リポジトリの整理がどう働くか理解しやすくなります。
refとreflog
refはオブジェクトを指す参照です。ブランチ名もcommitを指すrefで、commitが進むと指す先が更新されます。ブランチは移動できる目印と考えると、仕組みを理解しやすいでしょう。
HEADは通常、現在のブランチを指す特別な参照です。ブランチを切り替えるとHEADの参照先が移ります。commitを作ったときは現在のブランチが新しいcommitを指すようになります。
reflogはローカルリポジトリでHEADやブランチなどの参照が動いた履歴です。git reflogで確認でき、誤ってresetした後に以前の位置を探す助けになります。ただし共有相手には配布されず、長期保存のバックアップにもなりません。
実用 Git 第3版
Git経験者がオブジェクトストアや保存形式まで学ぶなら、『実用 Git 第3版』がおすすめです。オブジェクトモデルに加え、packfileやref、reflogも扱い、内部構造を詳しく学べます。
blobやtreeなどのオブジェクトから、commitとtagの関係を学べます。packfileの保存形式やref、reflogも扱うため、概念を実際のGitリポジトリに結びつけやすい内容です。コマンドライン例と図も使われています。
著者はPrem Kumar PonuthoraiとJon Loeligerで、萬谷暢崇が監訳し、長尾高弘が翻訳しています。2024年3月8日発売の576頁、B5変判です。基本操作を短く知りたい人には分量が多めですが、内部構造を腰を据えて調べる参考書として使えます。
参考価格は4,620円(税込)です。Gitの保存形式を仕事で調べたい人や、障害対応で参照の移動を追いたい人におすすめです。
基礎から内部へ
『ゼロから学ぶGit/GitHub 現代的なソフトウェア開発のために』は、基本操作からブランチ、リベース、GitHubでの多人数開発までを学び、終盤の第11章で.gitの中身を見ていく本です。Git初心者が基本から内部の用語まで順に学びたいときにもおすすめです。
第11章ではGitオブジェクトや参照、indexを取り上げます。基本操作やブランチ、リベースなどの演習もあり、GitHubでの多人数開発を含む実務の流れと結びつけて学べます。
著者は渡辺宙志です。2024年4月9日発行、208ページのB5変判です。基本操作からGitHubを使った多人数開発へ進む構成で、演習もあります。
参考価格は2,640円(税込)です。基本操作からチーム開発まで学び、Git内部の主要概念も確認したい人におすすめです。
図で操作をつかむ
『図解即戦力 Git&GitHubのしくみと操作がこれ1冊でしっかりわかる教科書』は、GitやGitHubを初めて使う人向けです。図で操作の意味をつかみ、コマンドを入力して出力を確かめる流れで学習します。図を見てコマンドを試し、出力を確かめながら覚えたい人におすすめです。
リポジトリや作業ツリー、commitとステージングエリア、ポインタやHEADなどの基本概念を図で扱います。ブランチとGitHubを使うチーム開発まで学べるので、日々の操作の流れもつかめます。
著者はリブロワークスで、ひらまつしょうたろうが監修しています。2026年2月10日発売で、240ページのA5判です。Chapter 4〜9の操作を確認できるサンプルファイルも提供されています。
参考価格は2,420円(税込)です。Gitをこれから学び、コマンド操作とチーム開発の流れをつかみたい初心者におすすめです。
結論
Gitの経験があり、オブジェクトやpackfileに加えてrefとreflogまで体系的に学びたいなら、『実用 Git 第3版』がおすすめです。内部構造を詳しく学ぶ目的に合います。
Gitの基本操作とチーム開発の流れを学びたい人には、『ゼロから学ぶGit/GitHub』がおすすめです。図やコマンドで基礎を覚えたい初学者には、『図解即戦力』をすすめます。
価格は購入時期や販売店で変わります。内部構造を深く読みたい人は実用Git、基本操作から学びたい人は残る2冊を選ぶとよいでしょう。自分の経験に合わせて決めると、学習を始めやすくなりますよ。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。




