第1章 なぜ Git を使うのか

ページ 4 / 4

01/ 04Git・GitHub

なぜ Git を使うのか

「企画書_最終_v2」の世界から、いつでも戻れる履歴の世界へ

読了目安 約 3入門
読みはじめる
この記事の要約

Git は、ファイルの「いつ・誰が・なぜ変えたか」を全部覚えてくれる記録係です。上書き保存で歴史が消える世界から、いつでも過去に戻れる世界へ変わります。

  • 上書き保存は 1 つ前の状態を消してしまう
  • Git はメッセージ付きの履歴を何個でも残せる
  • コードに限らず、文字のファイル全般で使える

「企画書_最終_v2.xlsx」はなぜ生まれるのか

大事なファイルほど、上書きが怖くてコピーを作ります。「_最終」「_v2」「_修正済み」…。気づけばどれが最新か分からず、古い版に手を入れる事故も起きます。この困りごとは、注意深さではなく道具で解決できます。

上書きで前の状態が消えた保存したら戻れない
コミットでいつでも巻き戻せる過去の状態が全部残る
いつ・誰が・なぜ変えたか不明変更の経緯が残らない
メッセージ付きの履歴に残る経緯が年表になる
同時に編集して上書き合戦共有ファイルの宿命
枝を分けて、後で安全に合流並行作業が前提の設計

各ブロックや矢印をクリックすると、その仕組みの説明がここに表示されます。

3 つの困りごとの答えはどれも「履歴を残す」 — それを道具にしたのが Git

この図をテキストで読む

構成図「その困りごと、ぜんぶ履歴が解決します」。ブロック6個、つながり3本。 【ブロック】 - 上書きで前の状態が消えた: 保存したら戻れない - コミットでいつでも巻き戻せる: 過去の状態が全部残る - いつ・誰が・なぜ変えたか不明: 変更の経緯が残らない - メッセージ付きの履歴に残る: 経緯が年表になる - 同時に編集して上書き合戦: 共有ファイルの宿命 - 枝を分けて、後で安全に合流: 並行作業が前提の設計 【図の符号】赤紫の淡い塗り=注意・課題 / 緑の淡い塗り=効果・良い点 【流れ】 - 困りごと → Git の答え: 上書きで前の状態が消えた → コミットでいつでも巻き戻せる → いつ・誰が・なぜ変えたか不明 → メッセージ付きの履歴に残る → 同時に編集して上書き合戦 → 枝を分けて、後で安全に合流

左の 3 つに心当たりがあれば、Git はあなたの道具です。

Git があると何が変わるのか

Git の発想はシンプルで、コピーを増やす代わりに「変更の記録」を積んでいきます。ファイルはいつも 1 つのまま。過去のどの記録にも一瞬で戻れるので、上書きはもう怖くありません。

ファイルコピー方式と見比べる

企画書.xlsx最初の版
企画書_最終念のためのコピー
企画書_最終_v2さらにコピー
どれが最新?誰にも分からない

各ブロックや矢印をクリックすると、その仕組みの説明がここに表示されます。

コピーが増えるほど「最新はどれ?」が分からなくなる

この図をテキストで読む

構成図。ブロック4個、つながり3本。 【ブロック】 - 企画書.xlsx: 最初の版 - 企画書_最終: 念のためのコピー - 企画書_最終_v2: さらにコピー - どれが最新?: 誰にも分からない 【図の符号】破線の枠=外部のサービス 【流れ】 - コピーが増えていく: 企画書.xlsx → 企画書_最終 → 企画書_最終_v2 → どれが最新?

同じ「歴史を残したい」でも、置き場所がぜんぜん違う。

コード専用の道具ではありません

Git が得意なのは文字のファイル全般です。プログラムはもちろん、設定ファイルや Markdown の文書も守備範囲です。5SLAB でも、このサイトの記事や社内の手順書をコードと同じリポジトリで Git 管理しています。

押さえておきたい用語

バージョン管理
ファイルの変更の歴史を記録し、いつでも過去の状態へ戻せるようにする仕組み。Git はその代表的な道具です。
リポジトリ
プロジェクト一式と変更履歴をまとめて入れる保管箱。フォルダ 1 つに歴史が同居します。
コミット(commit)
変更を履歴に刻む 1 単位。「何をなぜ変えたか」のメッセージを添えます。
差分(diff)
2 つの時点の間で「どの行がどう変わったか」の一覧。レビューでもこれを読みます。
履歴(ログ)
積み重なったコミットの一覧。いつ・誰が・なぜ変えたかの年表になります。
ページ 4 / 4