Claude Code Worktree — Git 分離で並列エージェントを衝突なく
各 Claude Code セッション / サブエージェントが独立 worktree を持ち、ファイル編集が干渉しない。残差なしなら自動クリーンアップ。
Worktree とは、なぜ重要か
git worktree は同一リポジトリに追加で作業ディレクトリをぶら下げる仕組み——独立した working tree とブランチを持ちつつ .git 履歴とリモートを共有。Claude Code は各並列セッション / サブエージェントを独立 worktree に配置し、A が機能 X、B がバグ修正 Y、ファイルレベルで干渉しません。
EnterWorktree ツールと isolation 設定
Claude Code で「work in a worktree」と指示するとモデルが EnterWorktree ツールで新規 worktree を作成。カスタム subagent の frontmatter に isolation: worktree を追加すると、その subagent が dispatch されるたびに自動で分離 worktree を取得。v2.1.x 以降は背景セッションでも worktree bg isolation 対応。
/team-build 並列マルチエージェントモード
/team-build で複数エージェントを一括 dispatch するとき、各々が自動的に worktree 分離を受け、重複領域でも衝突せずに作業可能。例:3 エージェントが a) auth リファクタ、b) ユニットテスト追加、c) マイグレーションスクリプト作成を同時実行——ファイル衝突なし、最後に人手でマージ。
自動クリーンアップと一般的な落とし穴
exit 時に commit なし & untracked ファイルなしなら worktree と一時ブランチが自動削除。変更があればパスとブランチ名が結果に返ります。落とし穴:1) エージェント間のブランチ名衝突、2) untracked ファイルが残ると削除されない、3) worktree-from-origin-main ワークフロー併用時は先に fetch origin が必要。チームでブランチ prefix(wt/agent-<name>-<ts>)を統一すると衝突を避けられます。
FAQ
通常の git branch と本質的に何が違いますか?
branch は commit ポインタで、切り替えると checkout でファイルが上書きされます。worktree は独立した作業ディレクトリで、複数 branch を異なる物理パスに同時 checkout できます。真の並列エージェント実行の前提条件です。
サブエージェント worktree がメインリポジトリを汚しませんか?
汚しません。worktree パスは独立し、git は .git/worktrees/<id> で管理します。commit なしで終了するとブランチごと自動削除されメインリポジトリはクリーンを保ちます。
中国国内から Claude Code worktree を使えますか?
使えます。worktree は git と Claude Code クライアントのローカル機能で、ネットワーク制限を受けません。モデル推論は QCode 経由で透明に Claude へ接続。