> For the complete documentation index, see [llms.txt](https://gitbook-open-v2-preview.gitbook.workers.dev/url/gitbook.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook-open-v2-preview.gitbook.workers.dev/url/gitbook.com/docs/documentation/ja-gitbook-documentation/getting-started/git-sync/monorepos.md).

# モノレポ

GitBook は monorepo をサポートしています。monorepo とは、1 つ以上の論理プロジェクト（例: iOS クライアントや Web アプリケーション）を含むリポジトリのことです。

GitBook は、同じリポジトリ内の複数のディレクトリを複数のスペースと同期できます。スペースで Git Sync を有効にすると、「Project directory」を設定できます。これは、次を検索するために使用されます `.gitbook.yaml` このスペースと同期するディレクトリ用のファイル。

リポジトリ構造の例:

```
/
  package.json
  packages/
     styleguide/
        .gitbook.yaml
        README.md
        SUMMARY.md
     app/
        README.md
        SUMMARY.md
     api/
        .gitbook.yaml
        README.md
        SUMMARY.md
```

この例では、GitBook 上で 3 つのスペースを作成し、それぞれ異なる Project directory に設定できます:

* `packages/styleguide`
* `packages/app`
* `packages/api`

Git Sync レベルの「Project directory」オプションは、 [`ルート` オプション](/url/gitbook.com/docs/documentation/ja-gitbook-documentation/getting-started/git-sync/content-configuration.md#root) 設定ファイル内の `.gitbook.yaml` ファイルを探すために使用されます。最初のものは `.gitbook.yaml` それ自体を探し、次に両方を組み合わせてディレクトリ内の残りのファイルを探します。もし `.gitbook.yaml` 「Project directory」に存在しない場合、同期はこのディレクトリにスコープされたデフォルト設定を使用します。

### マルチスペースリポジトリでディレクトリとアセットがどのように機能するか

同期された各スペースにはそれぞれ独自の **Project directory**があります。GitBook はそのスペースの `.gitbook.yaml` を設定された Project directory から読み込みます。その後 `ルート`, `README.md`, `SUMMARY.md`、Markdown ファイルとアセットのパスをそのスペースの同期された範囲から解決します。

モノレポでは、同期された各スペースはそれぞれ自身のディレクトリとファイルに限定されます。別のディレクトリから同期された別のスペースは、リポジトリの他の場所のファイルを自動的に継承したり再利用したりしません。

アセットも同じルールに従います。リポジトリレベルの `.gitbook/assets` フォルダーは、それらのスペースが異なる Project directory を使用している場合、スペース間で自動的に共有されません。

複数のスペースで同じファイルが必要な場合は、次のいずれかの方法を使用してください:

* 各スペースのディレクトリ内にアセットを配置します。
* リポジトリを再編成して、各スペースの同期範囲に参照しているアセットを含めます。

モノレポで新しいスペースを設定するときは、まずリポジトリ内に希望するディレクトリ構造を作成してください。GitBook は共有されたマルチスペースのレイアウトを推測したり、共有アセット領域を自動作成したりはしません。

さらに詳しく知るには `ルート` がスペースの同期範囲内でどのように解決されるかについては、 [コンテンツ設定](/url/gitbook.com/docs/documentation/ja-gitbook-documentation/getting-started/git-sync/content-configuration.md#root).

具体的な例を示します:

```
/
  packages/
    docs-en/
      .gitbook.yaml
      README.md
      SUMMARY.md
      .gitbook/
        assets/
          logo.png
    docs-fr/
      .gitbook.yaml
      README.md
      SUMMARY.md
      .gitbook/
        assets/
          logo.png
```

このリポジトリでは、 `packages/docs-en` と `packages/docs-fr` は 2 つの別々の同期されたスペースです。 `packages/docs-en/.gitbook/assets/logo.png` から同期されたスペースでは、自動的に利用できるわけではありません。 `packages/docs-fr`.

## Project directory の更新 <a href="#updating" id="updating"></a>

{% hint style="info" %}
ほとんどの場合、Project directory を更新するには次の手順を推奨します:

1. 既存の Git Sync を無効にする
2. Git リポジトリ内のファイルを Project directory に移動する
3. 新しい Project directory で Git Sync を再設定する
   {% endhint %}

場合によっては、最初は 1 つのスペースのみと同期する通常のリポジトリから始めたものの、その後、それと同期する複数のスペースを持つモノレポに移行することを決めたかもしれません。あるいは、Project directory の名前を変更する必要があるかもしれません。

既存の Git Sync で Project directory を変更すると、コンテンツに予期しない影響が生じる可能性があります。この変更は、次回の同期時にのみ反映されます（GitBook 上での編集または Git リポジトリでの新しいコミット）。

GitBook は、そのスペースに関する GitBook 関連ファイルがすべて、設定された Project directory 内に存在することを想定します。これには Markdown ファイル、 `README.md`, `SUMMARY.md`、およびそのスペースで使用される任意のアセットが含まれます。

#### **次の操作が Git リポジトリからのインポートである場合**:

GitBook は Project directory 内でページとファイルを見つけることを想定します。ファイルがまだリポジトリの Project directory に移されていない場合、同期結果はコンテンツのない空のスペースになります。

次の操作として、リポジトリ内のすべての GitBook 関連ファイル（Markdown ファイル、README/SUMMARY、アセット）を正しい新しい場所、つまり Project directory に移動するコミットを行うことを推奨します。アセットが新しい Project directory の外に残っている場合、そのスペースでは解決されるとは期待しないでください。

**次の操作が GitBook から Git リポジトリへのエクスポートである場合**:

GitBook は新しい Project directory に新しいファイルを生成または更新します。GitBook と同期されたファイルは、新しい Project directory に移動されます（可能な限り）。他のシステム部分がこれらのファイルに依存している場合、副作用が生じる可能性があります。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitbook-open-v2-preview.gitbook.workers.dev/url/gitbook.com/docs/documentation/ja-gitbook-documentation/getting-started/git-sync/monorepos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
