バージョン管理・Gitとは

要点

  • バージョン管理とは、誰が・いつ・何を変更したかを記録し、必要ならいつでも過去の状態に戻せる仕組みのことです。
  • Gitはその代表的なツールで、変更を「コミット」という単位で記録し、履歴として積み重ねていきます。
  • GitHubなどのサービスと組み合わせることで、複数人での並行開発やコードレビューがしやすくなります。
変更する
コミット
履歴に
積み重なる
いつでも
過去に
戻れる

ぽち先生も、毎日こんな風にチームで作業しています

💻 チームでの作業 📝 資料の共同編集
Gitの基本操作共同で作業しているのに、誰がいつ何を変えたか、ちゃんと記録が残っているのはなぜ? ブランチ運用何人もが同時に同じプロジェクトを触っているのに、お互いの作業がぶつからないのはどうして? GitHubでの共同開発オープンソースのプロジェクトって、世界中の見知らぬ人たちがどうやって一緒にコードを書いているんだろう?

バージョン管理がないとどうなるか

バージョン管理を使わない現場では、ファイルをコピーしながら「report_final.docx」「report_final2.docx」「report_final2_修正版.docx」のような名前で管理しがちです。どれが最新か分からなくなり、複数人が同時に編集すると、後から保存した人の内容で上書きされてしまうこともあります。

上書き事故同僚の変更が消えてしまう
最新版が不明どのファイルが正しいか分からない
過去に戻せない「昨日の状態」を復元できない

ぽち先生のヒント1冊のノートを複数人で回し書きしているのに、誰かが前のページを消しゴムで消して書き直してしまうイメージだよ。誰が何を書いたのか、元は何だったのかが分からなくなってしまうんだ。

バージョン管理とは

バージョン管理とは、ファイルの変更履歴を自動的に記録し、「いつ・誰が・何を・なぜ変更したか」を追跡できるようにする仕組みです。履歴が残っているので、問題が起きたときは原因の変更を特定したり、過去の状態に戻したりできます。

Word や Excel の「変更履歴の記録」機能に近いものですが、それを1つのファイルだけでなく、プロジェクト全体・チーム全体に広げたものだとイメージすると分かりやすいでしょう。

ぽち先生のヒントゲームの「セーブポイント」に似ているよ。こまめにセーブ(記録)しておけば、途中で失敗しても、その手前のセーブポイントからやり直せるんだ。

Gitとは

Gitは、現在もっとも広く使われているバージョン管理システムです。大きな特徴は「分散型」であること。中央のサーバーだけでなく、開発に参加する各メンバーの手元のPCにも、履歴のすべてがコピーされます。

💻 各メンバーのPC 履歴の完全なコピー オフラインでも作業できる
共有
☁️ GitHubなど チーム共通の置き場所

そのため、ネットワークにつながっていない状態でも作業や履歴の確認ができ、後から手元の変更をチームの共有場所に反映する、という進め方ができます。

リポジトリとコミット

Gitでは、履歴を保存する入れ物を「リポジトリ」、1回分の変更の記録を「コミット」と呼びます。コミットはファイルの「その時点でのスナップショット(写真)」のようなもので、コミットを重ねるごとに履歴が積み上がっていきます。

コミット1
初期作成
コミット2
機能追加
コミット3
不具合修正(最新)

ぽち先生のヒント旅行の思い出をアルバムに残すとき、節目ごとに写真を撮っていくイメージだよ。あとから写真(コミット)を見返せば、いつ・どこで・何があったかを振り返れるんだ。

作業ディレクトリ・ステージ・リポジトリ

Gitでの変更は、いきなり履歴に記録されるわけではありません。「作業ディレクトリ(編集中の場所)」→「ステージ(次にコミットする内容を選ぶ場所)」→「リポジトリ(履歴として確定する場所)」という3段階を経て記録されます。

作業
ディレクトリ
add
ステージ
commit
リポジトリ
(履歴)

この仕組みのおかげで、編集した内容のうち「この部分だけ記録する」という選び方ができます。詳しくは「Gitの基本操作」で解説します。

ブランチという考え方

ブランチとは、本流(履歴の main)から枝分かれさせて、他の作業に影響を与えずに変更を進められる仕組みです。作業が終わったら、ブランチを本流に「マージ(合流)」して1つの履歴に統合します。

main
(本流)
分岐
作業用
ブランチ
マージ
main
(統合後)

ぽち先生のヒント小説やゲームの「もしこの選択肢を選んだら」という分岐ルートに似ているよ。本編とは別のルートを試してみて、良い結果になったら本編に取り込む(合流させる)、というイメージなんだ。詳しくは「ブランチ運用」で解説するね。

GitHubでの共同開発

GitHubは、Gitのリポジトリをインターネット上で共有できるサービスです。チームの共有リポジトリに向けて、各メンバーが自分の変更を「プルリクエスト」として提案し、他のメンバーがレビューしてから本流に取り込む、という流れが一般的です。

💻 ローカル(自分のPC) 手元で編集・コミット
push /
プルリクエスト
☁️ リモート(GitHub) チームで共有 レビュー・議論

詳しくは「GitHubでの共同開発」で解説します。

まとめ

バージョン管理・Gitは、変更履歴を記録し、チームで安全に開発を進めるための土台となる知識です。コミットで履歴を積み上げ、ブランチで作業を分岐させ、GitHubのようなサービスでチーム全体に共有する、という流れを押さえておきましょう。

それぞれの内容は、以下の個別トピックでさらに詳しく学べます。

関連トピック:

🏠 トップに戻る