採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

なぜバージョン管理が必要か

テクノロジ系 / 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(クラウド)                   │
│                                     │
│   履歴ごと保存・チームと共有          │
│                                     │
└─────────────────────────────────────┘

役割の違い

GitGitHub
何かバージョン管理ツールリポジトリのホスティング
どこで動く自分の PCクラウド(Web)
なくなったら履歴が消えるpush できなくなる
使わなくてもGitHub は使えないGit は使える

Git がエンジン、GitHub が駐車場。

エンジンなしで駐車場は使えない。

まとめ

問題Git の解決策
どれが最新か分からないコミットで履歴を記録する
上書き事故が起きる変更を管理して衝突を検知する
一人の PC に閉じているGitHub に push して共有する

→ 次のトピック setup で Git をインストールして使える状態にする