> For the complete documentation index, see [llms.txt](https://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.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」オプションは、 [`root` オプション](/docs/documentation/ja-gitbook-documentation/getting-started/git-sync/content-configuration.md#root) の `.gitbook.yaml` 設定ファイルとは異なります。前者は検索に使用され `.gitbook.yaml` それ自体を、その後両方を組み合わせてディレクトリ内の残りのファイルを検索します。もし `.gitbook.yaml` が「Project directory」に存在しない場合、同期はこのディレクトリにスコープされた既定の設定を使用します。

### 複数セクションのリポジトリでディレクトリとアセットがどのように動作するか

同期された各セクションには、それぞれ独自の **プロジェクト ディレクトリ**。GitBook はそのセクションの `.gitbook.yaml` を、設定された Project directory から読み取ります。次に `root`, `README.md`, `SUMMARY.md`、Markdown ファイル、およびそのセクションの同期範囲内のアセットパスを解決します。

monorepo では、同期された各セクションはそれぞれのディレクトリとファイルにスコープされます。別のディレクトリから同期された別のセクションは、リポジトリ内の他の場所にあるファイルを自動的に継承したり再利用したりしません。

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

複数のセクションで同じファイルが必要な場合は、次のいずれかの方法を使います:

* アセットを各セクションのディレクトリ内に配置します。
* 各セクションの同期範囲に参照するアセットが含まれるように、リポジトリを再構成します。

monorepo で新しいセクションを設定する場合は、まずリポジトリ内に作成したいディレクトリ構造を作ってください。GitBook は共有の複数セクション構成を推測したり、共有のアセット領域を自動作成したりはしません。

どのように `root` がセクションの同期範囲内で解決されるかについての詳細は、 [コンテンツ設定](/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 つのセクションだけと同期する通常のリポジトリから始め、その後それと同期する複数セクションを持つ monorepo に移行することを決めることがあります。または、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, and the optional `goal` query parameter:

```
GET https://gitbook.com/docs/documentation/ja-gitbook-documentation/getting-started/git-sync/monorepos.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
