リポジトリとは

この記事の結論

  • リポジトリとは、プロジェクトのファイル一式と、その変更履歴をまとめて保管する場所のことです。
  • Gitでは、フォルダ直下の .git という隠しフォルダが履歴の本体です。ふだん開いて編集しているファイルは、そこから取り出した作業用の写しにあたります。
  • 自分のパソコンにあるローカル、GitHubなどに置くリモートの2つを行き来して使います。鍵や個人情報は、どちらにも入れない前提で運用します。

りぽじとり/Repository

プロジェクトのファイル一式と、その変更履歴をまとめて保管する場所のことです。

最終更新: 2026-09-26

01

リポジトリとは何か(意味と読み方)

リポジトリとは、プロジェクトを構成するファイル一式と、それらがどう変わってきたかの履歴を、ひとまとめにして保管する場所のことです。読み方は「りぽじとり」、英語では repository と書きます。もとの英単語は「貯蔵所」「倉庫」を指し、略して「リポ」「レポ」と呼ぶ人もいます。

GitHub Docs の「リポジトリについて」では、コードやファイルに加えて、各ファイルの改訂履歴を格納できる場所と説明されています。ポイントは「今のファイル」だけでなく「過去の記録」も一緒に入っていることです。

履歴をどう付けるかという考え方そのものはバージョン管理のページで扱います。このページでは、その記録が実際にどこに、どんな形で置かれているのかに絞って説明します。

02

リポジトリの中身:.gitフォルダと作業ツリー

Gitのリポジトリを作る方法は2つあります。手元のフォルダで git init を実行する方法と、既存のものを git clone で複製する方法です。Pro Git の「Git リポジトリの取得」によると、git init を打つとそのフォルダに .git というサブディレクトリが作られ、リポジトリに必要なファイルがすべてそこに入ります。

つまり1つのプロジェクトフォルダには、役割の違う2つの層が重なっています。

  • 作業ツリー:エディタで開いて書き換える、ふだん目にするファイル群です。
  • .git フォルダ:記録の本体です。隠しフォルダなので、既定の表示では見えません。

.git の内部構成はgitrepository-layout(Git 公式リファレンス)に載っています。主なものは次のとおりです。

  • objects/:記録されたファイルの中身やコミットそのものが入る倉庫
  • refs/:各ブランチやタグが、どの記録を指しているかのしおり
  • HEAD:いま作業しているブランチを指す目印
  • config:接続先のURLなど、このリポジトリだけの設定
  • hooks/:記録の前後などに自動で走らせるスクリプトの置き場

作業ツリーを持たず .git の中身だけで構成されたものは「ベアリポジトリ」と呼ばれます。受け渡し専用のサーバー側で使われる形です。

03

ローカルとリモート、公開と非公開

リポジトリは置き場所で呼び分けます。自分のパソコンの中にあるものがローカルリポジトリ、GitHubなどのサーバー上にある共有用のものがリモートリポジトリです。Pro Git によれば、git clone ではサーバーが持つデータのほぼすべてがコピーされ、既定ではすべてのファイルの全履歴が手元に届きます。そのため、ネットにつながっていなくても手元だけで過去をたどれます。

ローカルの記録をリモートへ送る操作がプッシュです。送り先の設定は、先ほどの config に保存されています。

GitHub上のリポジトリには公開範囲があります。公開(public)はインターネット上の不特定の人が閲覧でき、非公開(private)は所有者と、明示的に許可された人だけが見られます。企業向けの契約では、組織内だけに見せる internal も選べます。

04

AI開発でのリポジトリの使われ方

AIコーディングエージェントは、多くの場合リポジトリのルートを起点に動きます。たとえばターミナルでプロジェクトのフォルダに移動してからエージェントを起動すると、そのリポジトリ内のファイルが読み書きの対象になります。

このとき、リポジトリの「中に何が置いてあるか」がそのままAIへの説明書になります。

  • README:何のためのプロジェクトで、どう起動するか
  • エージェント向けの指示ファイル:ツールによって名前は違いますが、守ってほしい決まりや触ってほしくない場所を書いておくファイルです
  • テストと設定ファイル:変更後に何を確かめればよいかの手がかり

知らないリポジトリをAIと一緒に読み解く手順はAIと読む他人のコード:リポジトリ調査の型にまとめています。

05

リポジトリについてのよくある誤解

  • 誤解:リポジトリ=GitHub → 実際:GitHubはリモートリポジトリを置くサービスの1つです。git init した時点で、手元のフォルダはもう立派なリポジトリです。
  • 誤解:.git を消しても中のファイルは残るから平気 → 実際:作業ツリーのファイルは残りますが、過去の記録はすべて失われます。まだリモートへ送っていない記録は取り戻せません。
  • 誤解:.gitignore に書けば、もう記録から消える → 実際:gitignore の公式説明のとおり、すでに追跡しているファイルには効きません。git rm --cached で追跡を外してから書き足します。
  • 誤解:非公開にしておけば鍵を入れても安全 → 実際:共同作業者、連携した外部サービス、AIツールなど、読める相手は意外と多くあります。公開に切り替えた瞬間、過去の記録ごと見える状態にもなります。
06

リポジトリを作るときのコツ

  • 最初の記録の前に .gitignore を置く:.env、依存パッケージのフォルダ、ビルド結果などを最初から対象外にしておくと、あとで追跡を外す手間がなくなります。
  • 1つのプロダクトに1つを基本にする:関係の薄いものを同じ場所に入れると、履歴が混ざり、AIに渡す範囲も広がりすぎます。
  • READMEに起動手順を書く:数週間後の自分とAIの両方が、同じ説明を読んで動けます。書き方はREADMEとドキュメントをAIに書かせて維持するが参考になります。
  • 公開前に履歴ごと見直す:今のファイルに鍵がなくても、過去の記録に残っていれば読まれます。
07

関連用語

08

関連記事

09

出典・参考資料

10

よくある質問

Q1. リポジトリとは何ですか?
プロジェクトを構成するファイル一式と、その変更履歴をまとめて保管する場所のことです。Gitの場合、フォルダの中にある .git という隠しフォルダが履歴の本体で、ふだん編集しているファイル群はそこから取り出した作業用の写しにあたります。

Q2. リポジトリとフォルダは何が違いますか?
ただのフォルダは今の状態しか持っていません。リポジトリは今の状態に加えて、過去のすべての記録と、どの記録がどのブランチに属するかという情報を持っています。フォルダで git init を実行すると .git が作られ、そのフォルダがリポジトリとして扱われるようになります。

Q3. ローカルリポジトリとリモートリポジトリの違いは何ですか?
ローカルは自分のパソコンの中にあるリポジトリ、リモートはGitHubなどのサーバー上にある共有用のリポジトリです。git clone でリモートを複製すると、既定では全履歴が手元に来るので、ローカル側だけで過去の記録を調べたり新しい記録を作ったりできます。

Q4. 公開リポジトリと非公開リポジトリはどう選べばよいですか?
迷ったら非公開で作ります。公開はインターネット上の不特定の人が中身と履歴を読める状態なので、鍵や個人情報が一度でも記録に入っていると、そのまま読まれます。公開するのは、履歴の中身まで見せてよいと確かめてからにします。

Q5. AIコーディングエージェントはリポジトリの何を読んでいますか?
作業フォルダ内のファイル、READMEのような説明書き、エージェント向けに置かれた指示用のファイル、それに依頼に応じて履歴や差分も読みます。何を読ませるかはツールごとの設定で変わるので、読ませたくないものは最初からリポジトリの外に置くのが確実です。