•0Guhn
[Git Learn] Day 1. なぜGitなのか?
#git#バージョン管理#git-learn
シリーズ: Pro Git 2nd Edition に基づく学習ノート 参考: Pro Git Book (Official) 範囲: 1.1 About Version Control
バージョン管理、なぜ進化したのか?
バージョン管理システムは3つの大きな変化を経験した。
| 世代 | 方式 | 代表 |
|---|---|---|
| 第1世代 | ローカル | RCS |
| 第2世代 | 集中型 | CVS, SVN |
| 第3世代 | 分散型 | Git |
各世代がなぜ登場したのか、郵便局に例えて説明する。
1. ローカルバージョン管理 - 「一人暮らし」
初期は単純に自分のコンピュータでバージョンを管理するのが目標だった。
田舎の小さな一人郵便局を想像してみよう。局長さんが一人で帳簿に記入し、一人で配達し、一人で閉める。誰かに見せる必要がないから、引き出しの中の秘密のノートに書いておく。
問題: 引き出しが火事になったら?帳簿も燃えて復旧する方法がない。

2. 集中型 - 「協業の始まり」
プロジェクトが大きくなり、チームになった。一人で働く時は問題なかったが、社員が3人に増えると、自分のPCにあるファイルを相手に渡す手間が発生した。
「おい、帳簿を一つにまとめよう!」
こうして東京本店(中央サーバー)が誕生した。今やすべての支店の社員は出勤したらまず東京本店に電話して帳簿の内容を確認しないと仕事ができない。
管理者の立場では良い。誰が何をしているか一目でわかるから。
でも致命的な問題がある。
- 本店の電話が繋がらなくなったら? → 全国すべての支店の業務がストップ
- 本店のハードディスクが壊れたら? → 10年分のプロジェクト履歴が一瞬で消える
これが**単一障害点(Single Point of Failure)**問題だ。

3. 分散バージョン管理 - 「Gitの登場」
協業は維持しつつ、本店が潰れても安全でいられないか?
Gitの答えはシンプルだった。単にファイルだけを取得するのではなく、リポジトリの全記録を持っていけ。
今や大阪支店、名古屋支店も本店と同じ帳簿の原本を自分の金庫に入れて仕事をする。

決定的な違い:
- 復旧能力: 東京本店が爆発しても、大阪支店の帳簿を持ってきて本店を再建できる
- オフライン作業: 本店とネットが切れても、自分の金庫に帳簿があるから飛行機の中でも仕事してコミットできる
- 速度: ネットワーク越しに聞く必要なく、自分のハードディスクから読むから速い
まとめ
Gitを使うということは、自分のPCが単なる端末ではなく一つの完全なサーバーになるということだ。
| コマンド | 実際にやること |
|---|---|
git clone |
リポジトリの全記録をコピー |
git commit |
サーバーなしでローカルに記録 |
git push |
ローカルの記録をリモートに同期 |
Log
- • 2026-02-03: create
- • 2026-02-03: add images