Skip to content

1. なぜ Git を使うのか

この章だけは手を動かしません。 Git と GitHub の区別だけ持ち帰れば十分です。

1-1 「最終版_修正2_本当に最終.docx」問題

Section titled “1-1 「最終版_修正2_本当に最終.docx」問題”

ファイル名で世代を管理したことのある人は、この4つに心当たりがあるはずです。

  • どれが最新版なのか、自分でもわからなくなる
  • 昨日は動いていたのに、どこを戻せばいいのかわからない
  • 2人で同じファイルを編集して、片方の作業が消える
  • この変更を誰が何のためにやったのか、誰も答えられない

Git が解決するのはこの4つです。 以降の章は、それぞれに対する回答になっています。

1-2 Git はセーブポイント付きのフォルダ

Section titled “1-2 Git はセーブポイント付きのフォルダ”

Git の働きは、ゲームのセーブに対応させると見通しがよくなります。

ゲーム Git
セーブする コミットする
セーブデータ一覧 履歴
前のセーブに戻る 過去のコミットに戻る
セーブ名「ボス戦前」 コミットメッセージ
別ルートを試す ブランチ

セーブと違う点が1つあります。 ゲームのセーブは上書きされて消えますが、Git の履歴は消えずに全部積み上がります。 半年前のある1行が、いつ誰の手で入ったのかを後から辿れるのは、この性質のためです。

ここが最も誤解されるところです。

flowchart LR
  subgraph pc["自分の PC"]
    git["Git<br/>履歴を記録するソフトウェア<br/>ネットがなくても動く"]
  end
  subgraph cloud["インターネット"]
    gh["GitHub<br/>履歴を置いて共有する場所"]
  end
  git -- "push(送る)" --> gh
  gh -- "pull(受け取る)" --> git
  classDef local fill:#dbeafe,stroke:#3b82f6,color:#1e3a8a
  classDef remote fill:#ede9fe,stroke:#8b5cf6,color:#4c1d95
  classDef work fill:#f1f5f9,stroke:#94a3b8,color:#334155
  classDef safe fill:#dcfce7,stroke:#22c55e,color:#14532d
  classDef alert fill:#fef3c7,stroke:#f59e0b,color:#78350f
  class git local
  class gh remote
  style pc fill:none,stroke:#3b82f6,stroke-dasharray: 4 4
  style cloud fill:none,stroke:#8b5cf6,stroke-dasharray: 4 4
Git GitHub
何か 履歴を記録するソフトウェア Git のデータを置く Web サービス
どこにあるか 自分の PC の中 インターネット上
作ったのは Linux の開発者たち(2005年) 一企業(現在は Microsoft 傘下)
ないと困ること 履歴管理ができない 一人なら困らない。共有ができない

Git は記録する道具、GitHub は記録を置いて共有する場所です。 Git はネットが繋がっていなくても使えます。 飛行機の中でもコミットはできて、地上に降りてから push すれば GitHub に反映されます。

GitHub 以外の置き場所

同じ役割のサービスに GitLab や Bitbucket があります。 自分でサーバーを立てることもできます。 Git と GitHub が一体のものではない、と分かっていれば十分です。