なぜバージョン管理が必要か
テクノロジ系 / why-git — なぜ Git を使うのか
なぜバージョン管理が必要か
— ファイルのコピーで管理するとどうなるか —
このトピックが終わると
- 「バージョン管理がなぜ必要か」を自分の言葉で説明できる
- Git と GitHub が別物だと分かる
- 次のトピック(setup)に進む動機を持てる
章 1 — コピーで管理すると何が起きるか
よくある「バージョン管理」の現実
report_v1.php report_v2.php report_v2_final.php report_v2_final_fix.php report_v2_final_fix2.php ← どれが最新?
1人でも混乱する。
チームだと、この混乱が人数分×ファイル数分 起きる。
2つの問題が同時に発生する
┌─ Aさんが編集中
login.php ───────┤
└─ Bさんも編集中
↓
Bさんが保存 → Aさんの変更が消える 💥| 問題 | 内容 |
|---|---|
| 履歴の消失 | どの版が正しいか分からなくなる |
| 上書き事故 | 誰かの変更が誰かの変更を消す |
Git はこの 2つだけ を解決するために作られた。
章 2 — Git が解決すること
Git の役割:スナップショットを撮る
[編集前] [編集後] [記録]
login.php ──→ login.php ──→ コミット
「ログイン機能を追加
/ Aさん / 10:32」記録されるのは 3つ:
- 何を 変えたか(差分)
- 誰が 変えたか
- いつ 変えたか
Git があると何が変わるか
v1 ──── v2 ──── v3 ──── v4(現在)
↑
ここに戻れる- 過去のどの時点にも戻れる
- 誰が何を変えたか追跡できる
- 複数人が同時に、安全に変更できる
章 3 — Git と GitHub は別物
よく混同される2つ
┌─────────────────────────────────────┐
│ あなたの PC │
│ │
│ ファイル ──→ Git(履歴を管理) │
│ │
└──────────────┬──────────────────────┘
│ push(送る)
▼
┌─────────────────────────────────────┐
│ GitHub(クラウド) │
│ │
│ 履歴ごと保存・チームと共有 │
│ │
└─────────────────────────────────────┘役割の違い
| Git | GitHub | |
|---|---|---|
| 何か | バージョン管理ツール | リポジトリのホスティング |
| どこで動く | 自分の PC | クラウド(Web) |
| なくなったら | 履歴が消える | push できなくなる |
| 使わなくても | GitHub は使えない | Git は使える |
Git がエンジン、GitHub が駐車場。
エンジンなしで駐車場は使えない。
まとめ
| 問題 | Git の解決策 |
|---|---|
| どれが最新か分からない | コミットで履歴を記録する |
| 上書き事故が起きる | 変更を管理して衝突を検知する |
| 一人の PC に閉じている | GitHub に push して共有する |
→ 次のトピック setup で Git をインストールして使える状態にする