> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bricks.tools/llms.txt
> Use this file to discover all available pages before exploring further.

# ワークツリー

> 独立した git ワークツリーで、専用のブランチでチャットを実行する

プロジェクトの独立した [git ワークツリー](https://git-scm.com/docs/git-worktree)でチャットを実行します。各ワークツリーは独立したブランチであり、`.bricks/worktrees/` の下に独自のチェックアウトを持つため、エージェントはメインのチェックアウトや他のチャットに影響を与えることなく、ブランチ上でビルドや実験ができます。満足したら、その成果をマージして戻します。

<Info>
  ワークツリーは Git リポジトリ内のプロジェクトでのみ利用できます。それ以外の場合、ワークツリーピッカーは表示されません。
</Info>

## ワークツリーを選ぶ

ワークツリーピル（ブランチアイコンと現在のターゲット名）が、プロジェクトチャットの入力バーに他のセレクターと並んで表示されます。これはチャットが実行されるワークツリーを示し、デフォルトは**メイン**です。

ターゲットを変更できるのは、チャットが空のあいだだけです。チャットにメッセージが入ると、ワークツリーはロックされます。ピルは表示されたままですが、開かなくなります（ツールチップは「このチャットのワークツリー（開始後はロックされます）」と表示されます）。

ピルをクリックすると、次の中から選べます：

* **メイン**——プロジェクトの主チェックアウト
* 既存のワークツリー（**ワークツリー**見出しの下に一覧表示）
* **新しいワークツリー…**——新規に作成する

<Note>
  ワークツリーピッカーはプロジェクト単位です。[Main Chat](/ja/ctor/guide/main-chat) にワークツリーターゲットはありません。
</Note>

## ワークツリーを作成する

\*\*新しいワークツリー…\*\*を選ぶと、**新しいワークツリー**ダイアログが開きます。

* 任意の**名前**を入力します。入力すると、対応するブランチとフォルダーがライブプレビューで表示されます：`.bricks/worktrees/<名前>`。名前はスラッグ化されます——すべて小文字になり、スペースやその他の文字は `-` にまとめられ、最大 60 文字に制限されます。
* 名前を空欄にすると、`brave-otter` のような名前が自動生成されます。
* **作成**をクリックします。CTOR はプロジェクトのデフォルトブランチからブランチと独立したチェックアウトを作成し、その中で `bun install` を実行します。チャットは自動的に新しいワークツリーに切り替わります。

作成に失敗した場合、未完成のワークツリーはロールバックされるため、クリーンな状態から再試行できます。

最初に作成するワークツリーは、`.bricks/worktrees/` をプロジェクトの `.gitignore` に追加してその変更をコミットするため、チェックアウトされたワークツリーがプロジェクトにコミットされて戻ることはありません。

## ワークツリーで作業する

ワークツリーチャットは、サイドバーのエントリーの横にブランチアイコンを表示します。エージェント（およびチャットが行うすべて）は、メインのチェックアウトから隔離された、ワークツリーのブランチとファイルに対して実行されます。

ワークツリーは **main にマージ**を通じて統合される設計のため、チャットヘッダーのアクションメニューにある公開アクションは制限されます：

| アクション       | ワークツリーチャットでは |
| ----------- | ------------ |
| **プル**      | 利用可能         |
| **設定をプッシュ** | 非表示          |
| **デプロイ**    | 非表示          |

設定をプッシュとデプロイはデフォルトブランチの操作です——まず成果をマージして戻し、メインのチャットから公開してください。

## main にマージする

チャットヘッダーの**ワークツリー**ドロップダウンを開き、**main にマージ**を選びます。CTOR は次を行います：

1. ワークツリーの保留中の変更をスナップショットコミットとしてコミットします。
2. ワークツリーのブランチを、メインのチェックアウト内のデフォルトブランチにマージします。

メインのチェックアウトはデフォルトブランチ上にあり、コミットされていない変更がない状態でなければなりません。そうでない場合、マージは停止し、先に修正すべき内容を伝えます（たとえば、メインのチェックアウトの変更をコミットまたはスタッシュする）。

マージで競合が発生した場合は自動的に中止され、ダイアログに競合したファイルが一覧表示されます。手動で解決してから、再度 **main にマージ**を実行してください。

## ワークツリーを削除する

**ワークツリー**ドロップダウンを開き、**ワークツリーを削除**を選びます。これはワークツリーのディレクトリを削除しますが、その git ブランチは保持します。

ワークツリーにコミットされていない変更がある場合、最初の試行は警告とともにブロックされます。**変更を破棄して削除**で再度確認すると、強制的に削除され、それらの変更は失われます。

## 孤立したワークツリー

ワークツリーのディレクトリが別のウィンドウから、または CTOR の外で削除されると、チャットはチェックアウトがもう存在しないことを検出して読み取り専用になり、「このワークツリーはディスク上に存在しません。チャットは読み取り専用です。」というバナーを表示します。会話は読める状態のままです。作業を続けるには別のチャットに切り替えてください。
