音声スライド (クリックで展開/閉じる)
はじめに
- 学ぶ内容:Git の特徴、リポジトリ、コミット
- 目標:3 つの用語を自分の言葉で説明できるようになる
この単元では、Git の特徴、リポジトリ、コミットという 3 つの基本概念を学びます。学習を終える頃には、これらの用語を自分の言葉で説明できるようになることを目標とします。
前回の振り返り:集中型と分散型
- 集中型:履歴はサーバのみが持つ
- 分散型:各利用者の手元にも全履歴の複製がある
- 前単元で学んだ 2 方式の違いを振り返る
前の単元では、履歴をサーバだけが持つ「集中型」と、各利用者の手元にも全履歴の複製がある「分散型」という 2 つの方式を学びました。この違いを踏まえて、Git がどちらの方式を採用しているかを見ていきます。
Git の特徴:分散型で高速
- Git は「分散型」の「バージョン管理システム」
- 手元に全履歴があるため動作が高速
- 現在の業界標準として広く使われている
Git は分散型のバージョン管理システムです。手元の端末に全履歴の複製があるため、サーバへの問い合わせが少なく動作が高速です。また、現在では業界標準として広く使われています。
ブランチ作成が軽量な理由
- Git では「ブランチ」の作成が瞬時に完了する
- 詳しい仕組みはモジュール 5 で学ぶ
- ここでは「作成コストが極めて小さい」特徴だけ覚える
Git のもう一つの特徴は、ブランチという枝分かれの仕組みを、ほとんどコストをかけずに作れることです。ブランチの詳しい仕組みは、後のモジュールで学びます。ここでは、作成コストが極めて小さいという特徴だけを覚えておいてください。
リポジトリとは何か
- リポジトリ:ファイル群と全変更履歴を格納する入れ物
- 作業対象の「ディレクトリ」と 1 対 1 で対応する
- いわば「プロジェクト」の記録庫
リポジトリとは、ファイル群とその全ての変更履歴を格納する入れ物のことです。作業対象のディレクトリと 1 対 1 で対応し、いわばプロジェクトの記録庫のような存在です。
リポジトリと作業ディレクトリ

この図は、1 つの作業ディレクトリに対して 1 つのリポジトリが対応する様子を表しています。リポジトリはディレクトリの中に隠れた形で存在し、そのディレクトリの全履歴を記録しています。
コミットとは何か
- コミット:ある時点の全体の状態を記録したもの
- 「スナップショット」と呼ばれる
- 変更のたびに新しいスナップショットを作る
コミットとは、ある時点でのファイル全体の状態を記録したものです。この記録はスナップショットと呼ばれます。ファイルを変更してコミットするたびに、新しいスナップショットが作られていきます。
コミットはスナップショット
- よくある誤解:コミットは差分だけを保存している
- 実際は、その時点の「全ファイル」の状態を記録する
- 差分表示は、後から比較して計算しているだけ
初学者がよく誤解する点として、コミットは変更差分だけを保存していると考えてしまうことがあります。実際には、その時点の全てのファイルの状態を記録しています。差分として表示される内容は、2 つのコミットを後から比較して計算した結果に過ぎません。
スナップショットの並びを見る

この図は、コミットが連なっていく様子を表しています。それぞれのコミットの箱の中には、その時点の全てのファイルが入っています。差分だけを保存しているのではなく、コミットごとに全体の状態を持っていることが分かります。
まとめ
- Git は「分散型」で高速、「ブランチ」作成も軽量
- リポジトリはファイルと履歴の入れ物
- コミットは差分ではなく「全体」のスナップショット
この単元では、Git の特徴、リポジトリ、コミットについて学びました。Git は分散型で高速に動作し、ブランチの作成コストも小さいという特徴があります。リポジトリはファイル群と全履歴を格納する入れ物であり、コミットは差分ではなく、その時点の全体の状態を記録したスナップショットです。