はじめに
この記事は、Gitをなんとなく使っている私「ことれい」が、Gitを学び直した過程で知ったことをまとめたものです。
連続記事となっており、前回は「Gitの保存の仕組み」について解説しました。
前回: Git保存の仕組みをやさしく解説 スナップショットとコミット
今回の内容は、ローカルリポジトリとリモートリポジトリについてです。
各用語の意味から、どのようにデータをやりとりしているかを詳しく見ていきます。
イラスト多めで、イメージで理解できるようにしたのでぜひ読んでください。
ことれいのもり
2025-12-25
この記事は、Gitをなんとなく使っている私「ことれい」が、Gitを学び直した過程で知ったことをまとめたものです。
連続記事となっており、前回は「Gitの保存の仕組み」について解説しました。
前回: Git保存の仕組みをやさしく解説 スナップショットとコミット
今回の内容は、ローカルリポジトリとリモートリポジトリについてです。
各用語の意味から、どのようにデータをやりとりしているかを詳しく見ていきます。
イラスト多めで、イメージで理解できるようにしたのでぜひ読んでください。

Gitを使う上でよく出てくるリポジトリという言葉。
リポジトリとは、変更履歴を保管する場所(データベース)のことです。
例えば、あなたがチームでRPGゲームを作っているとします。
ゲームの中にはキャラクター・マップ・アイテムなど、様々な要素があります。
このように、誰が・いつ・どんな内容を変更したかを記録できるものがリポジトリです。
リポジトリには、大きく分けて次の二種類があります。
それぞれについて、詳しく見ていきましょう。

ローカルリポジトリとは、自分のPC上で変更履歴を保管する場所のことです。
ファイルを変更すると、その内容はスナップショットとしてローカルリポジトリに記録されます。
しかし、この変更は自分のPCの中だけに保存されている状態です。
チームメンバーに反映するには、オンライン上(GitHubなど)のリモートリポジトリへアップロードする必要があります。
先ほどのゲームの例に当てはめて考えてみましょう。

Aさん・Bさん・Cさんの三人はローカルリポジトリに以下の変更を加えました。
これらの変更は、それぞれ各メンバーのローカルリポジトリにだけ記録されています。
つまり、自分のPC上にしか存在していません。
Aさんが追加した「キャラクターのレベルアップ機能」は、AさんのPCにしか存在しません。
同じようにBさんが修正した「アイテムを合成する機能」は、BさんのPCにしか存在しません。
ローカルリポジトリはあくまでも、自分のPC上での変更履歴の話です。
ここからは、ローカルリポジトリがどのような流れで変更履歴を記録しているかを詳しく見ていきましょう。
ローカルリポジトリは以下の3つの要素で構成されています。

ワークツリーとは、自分のPCにあるファイルを変更する作業場所のことです。
VSCodeなどのエディターでコードを書く領域などがワークツリーにあたります。
まずはこのワークツリーでファイルを変更して、次のステップに進みます。
ステージとは、コミットするファイルを一時的に集めておく場所です。
ここで、コミット対象を「選ぶ」工程が入ります。
「全部をコミットすればいいのでは?」と思う人もいるかもしれません。
しかし、開発をしているとコミットしたくないファイルが存在します。
このような物までコミットすると、情報漏洩につながる可能性があります。
そのため、どのファイルを記録(コミット)するか?を選別するために、ステージという工程が必要になるのです。
ローカルリポジトリはここまで話してきた、変更履歴の保管場所です。
ステージに追加されたファイルのみが、スナップショットとしてローカルリポジトリに記録されます。この3つのステップを経て、ローカルリポジトリへ変更履歴が記録されます。
最初は少し複雑に感じるかもしれませんが、
ワークツリーでファイル変更→ステージでコミット対象を選択→ローカルリポジトリに保存という流れを図でイメージしておくだけでも十分です!

リモートリポジトリとは、オンライン上での変更履歴の保管場所です。
GitHubやBacklogなどが有名です。
一番の特徴は、複数人のファイルの変更履歴をまとめて管理できる点です。
ローカルリポジトリはあくまで自分のPCの変更履歴だけを扱ってきました。
しかし、リモートリポジトリは複数人の変更履歴を保存できます。
この記事の最初に紹介した「Aさん・Bさん・Cさんの変更履歴をまとめたリポジトリの図」は、まさにリモートリポジトリのことです。
ローカルリポジトリとリモートリポジトリの関係をイラストでまとめてみましょう。
このイラストだけ頭に焼き付けておけばバッチリです!

今回大事なポイントは以下の2つです。
1. ワークツリーでファイル変更
2. ステージでコミットするファイルを選択
3. リポジトリに変更を記録
次回はGitのコマンドの説明に入っていきます!
ただ意味を羅列するだけでなく、イラストでイメージしながら理解できるようにするので続けてご覧ください。
次回: