> 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/docs-as-code/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/docs-as-code/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/docs-as-code/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 つの পৃথ separate な同期セクションです。次の場所から参照されるファイル `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 に移動されていない場合、同期結果はコンテンツのない空のセクションになります。

次の操作では、Markdown ファイル、README/SUMMARY、アセットを含むすべての GitBook 関連ファイルを、リポジトリ内で 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/docs-as-code/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.
