リポジトリとは?ローカルとリモートで変更の履歴を持つ仕組み

リポジトリ、変更の履歴を、ためる場所。寅次郎先生と記事の内容を表すイラスト。
確認日:2026年10月7日
Gitの版:2.56.0

GitHubを使い始めると、最初に「リポジトリを作成」という言葉に出会います。続いて「ローカル」「リモート」「クローン」と言葉が増え、何がどこにあるのか分からなくなりがちです。

本記事では、Gitの公式ドキュメントと、公式サイトで公開されている『Pro Git』をもとに、リポジトリの役割とローカルとリモートの違いを解説しましょう。

リポジトリとは

リポジトリは、ファイルの変更の履歴をためておく保管場所です。Gitで管理するフォルダーには、ふだん編集するファイルのほかに .git という隠しフォルダーがあり、変更の日時や作者、内容の記録はすべてこの中に入っています。

リポジトリを手に入れる方法は2つです。手元のフォルダーで git init を実行して新しく作るか、別の場所にあるリポジトリを git clone で写してくるかのどちらかになります。

ローカルリポジトリとリモートリポジトリ

リポジトリは、置き場所によって2つに呼び分けます。

リモートリポジトリはサーバーなどに置いた共有の保管場所で、AさんとBさんはそれぞれ自分のパソコンにローカルリポジトリを持つ。ローカルからリモートへはプッシュで送り、リモートからローカルへはプルで受け取る

ローカルリポジトリは、自分のパソコンの中にあるリポジトリです。ファイルを編集し、変更を記録するのは、いつもこちらで行います。

リモートリポジトリとは、別の場所に置いたリポジトリのことです。『Pro Git』は、インターネットやネットワークのどこかに置いたプロジェクトの版、と説明していました。複数の人が同じリモートリポジトリにつなぎ、自分の変更を送ったり、ほかの人の変更を受け取ったりして作業を共有します。送る操作はプッシュ、受け取る操作はプルという名前です。

ここでの「リモート」は「遠く」ではなく「別の場所」という意味にすぎません。『Pro Git』によると、同じパソコンの別のフォルダーにあるリポジトリも、リモートとして扱えます。

クローンは履歴ごと写す

リモートリポジトリから手元にリポジトリを作る操作が、クローンです。

クローンは、リモートリポジトリの最新のファイルだけでなく、過去のコミットの履歴までまとめて写す。写したローカルリポジトリでは、ネットワークにつながっていなくても履歴を見たりコミットしたりできる

クローンで写されるのは、最新のファイルだけではありません。『Pro Git』によると、何も指定しなければ、すべてのファイルの過去のすべての版が手元に届きます。手元のリポジトリは、リモートと同じ履歴を持つ完全な写しです。

そのため、Gitのほとんどの操作は手元だけで済みます。履歴を見る、版を比べる、コミットして変更を記録する、といった作業にネットワークは要りません。移動中でも作業を進め、つながったときにまとめてリモートへ送れば十分です。

クローンすると、写してきた元のリモートリポジトリは origin という名前で登録されます。コマンドで origin と書けば、このリモートを指せるわけです。

注意したいこと

手元のリポジトリは完全な写しなので、リモートに上げたものは、クローンした全員の手元にも残ります。パスワードやAPIキーのような秘密の値を一度コミットしてプッシュすると、あとでファイルを消しても履歴には残ったままです。ほかの人の手元にも、すでに写っているかもしれません。秘密の値は、最初からリポジトリに入れないようにしましょう。

逆に、手元のリポジトリだけにある変更は、パソコンが故障すると失われます。リモートへ定期的にプッシュしておけば、それが控えになるでしょう。

製品での使われ方

リモートリポジトリの置き場所としては、GitHubやGitLabのようなサービスがよく使われます。どちらも、Webの画面からリポジトリを作り、ほかの人と共有できる仕組みです。

GitHubでの作り方と消し方は、本サイトの「【GitHub】新しいリポジトリを作成する方法」と「【GitHub】リポジトリを削除する方法」で案内しました。

プログラミング用のAIエージェントにも、リポジトリを単位に動くものがあります。たとえば、プロジェクトごとのメモリーを、同じリポジトリの中で共有する製品です。

参考にした一次情報

当サイトが作成した本文はCC BY 4.0です。引用画像は対象外です。Gitのしくみの記事の一覧へもどる