Git

大事なボス戦の直前にセーブデータを残しておき、いつでも過去に戻れるようにするタイムマシンのような記録帳です。

定義 Git(ギット)は、ファイルの変更履歴を時系列順にきめ細かく記録してくれるバージョン管理システムです。いつ・どの文章やコードを追加・削除したのかを一目で追跡でき、作業中にミスがあっても希望する過去の時点へ安全に戻すことができます。

「最新_最終_本当の最終.docx」地獄からの救世主

資料やレポートを作成しているとき、「報告書_最終.docx」「報告書_本当の最終.docx」「報告書_本当の本当に最後_修正.docx」のように、デスクトップが似たようなファイルで埋め尽くされた経験は誰にでもあるはずです。これまで書いた大事な内容が消えてしまうのを恐れて、ファイル名を少しずつ変えながらコピーを作ってしまうからです。

Gitは、そんな非効率なファイルコピーの悩みをすっきり解決してくれます。ファイル名を1つのまま維持しながら、残したい瞬間にチェックポイント(セーブデータ)を写真のようにパシャリと記録してくれるのです。

こうして積み重なった記録のおかげで、いつでも時間旅行に出かけることができます。新しい内容を大量に書き足して全体がぐちゃぐちゃになってしまっても、焦る必要はありません。数回クリックするだけで、昨日の午後3時の状態へ綺麗に戻すことができます。

Gitのチェックポイント記録と復元の概念図 過去へ復元 下書き作成 記録1 デザイン修正 復元地点 最終確認 現在の状態

独立したパラレルワールドを作る「ブランチ」の魔法

1人で作業するときも便利ですが、チームで1つのプログラムを作るときにGitの真価が発揮されます。もし複数人で1つのファイルを同時に編集したら、お互いの作業が上書きされたり混ざり合ったりして大混乱に陥ってしまいます。

Gitはこの問題を、「枝(ブランチ)」というパラレルワールドの概念で見事に解決します。元の幹(マスターデータ)を安全に保ったまま、開発者ごとに自分専用の枝を伸ばし、それぞれが担当する機能を自由に開発できるのです。

自分だけの空間で実験や開発を終えたら、その枝を元の太い幹へと合流させます(マージ)。もし2人が同じ行のコードを別々に書き換えていたとしても、Gitが衝突(コンフリクト)した場所を正確に教えてくれるため、トラブルなく調整できます。

Gitのブランチとマージの構造図 main ブランチA(機能) ブランチB(画面) 独立開発 (分岐) 統合 (マージ)

もう少し正確に言うと — 分散型バージョン管理

もう少し専門的に言うと、Gitは参加者全員がプロジェクトの全歴史を共有して持つ「分散型バージョン管理システム」です。中央サーバーだけに履歴を保管していた昔の方式とは違い、チームメンバー全員のパソコンに変更履歴全体の完全なコピーが複製されます。

そのため、飛行機の中や電波の届かないオフライン環境でも、自由に作業履歴を残したり過去の履歴を閲覧したりできます。また、万が一中央サーバーが故障しても、誰か1人のパソコンさえ残っていればプロジェクト全体の歴史を完璧に復元できます。

ちなみに、自分のパソコン内でのバージョン管理を行うツールが「Git」なら、その記録をWeb上にアップロードして世界中の仲間と共有・共同作業できるようにしたオンラインサービスが「GitHub(ギットハブ)」です。

🤔 よくある誤解

✕ 誤解

Git(ギット)とGitHub(ギットハブ)は完全に同じツールである。

✓ 事実

Gitは自分のパソコン上で変更履歴を記録・管理するツールプログラムであり、GitHubはGitで記録した成果物をインターネット上に保存してみんなで共有・共同作業を行うためのWebプラットフォームです。

🧺 日常で出会う場面

1 新機能を実験的に開発していてコードが動かなくなったとき、コマンド1つで昨日正常に動いていた状態へ復元する。
2 複数のエンジニアがログイン機能と決済機能を別々に開発し、後から1つの完成したアプリへと衝突なく統合する。
💡 つまり ひとことで

Gitは、ファイルの変更履歴をセーブポイントのように記録して過去の状態に戻したり、複数人での共同開発をスムーズにしたりする分散型バージョン管理ツールです。