Claude Codeのgit worktreeで並列エージェント開発を行う方法|仕組み・使い方・注意点【2026年版】
AIコーディング環境のClaude Codeでは、git worktree(ワークツリー)を使って複数のエージェントを別々の作業ディレクトリで並列に動かすことができます。通常、複数のセッションやサブエージェントが同じリポジトリで同時にファイルを編集すると変更が衝突しますが、ワークツリーで作業を物理的に分離すれば、互いに干渉せず並行して開発を進められます。Claude CodeはこのワークツリーをCLIにネイティブ対応しており、--worktreeフラグやサブエージェントのisolation: worktree指定で簡単に隔離環境を作れます。この記事では、git worktreeの仕組みから、Claude Codeでの使い方、サブエージェントの並列実行、マージとコンフリクトの扱い、並列化の判断基準、そしてccswarmなどのオーケストレーションOSSまでを、2026年6月時点の最新情報でわかりやすく解説します。
まとめ:Claude Codeの並列ワークツリー開発の要点
先に結論を整理します。詳細は各セクションで解説します。
- git worktreeとは:1つのリポジトリに複数の作業ディレクトリを作る標準機能。履歴(.git)を共有しつつ、ブランチごとにファイル状態を独立させられます。
- Claude Codeでの使い方:
claude --worktree feature-xで隔離ワークツリーを作成して起動。既定で.claude/worktrees/配下に作られるため、.gitignoreに追加しておきます。 - サブエージェントの並列化:エージェント定義のフロントマターに
isolation: worktreeを書くと、自動で専用ワークツリーで実行され、同一ファイルの衝突を防げます。 - マージ:各ワークツリーのブランチを統合します。別ファイルならクリーン、同一ファイルは3-wayコンフリクトになるため手動解決または破棄します。
- 向き不向き:独立したタスクが多いほど並列化の効果大。共有ファイル中心やマイグレーションのような順序依存タスクは逐次実行が安全です。
以下で、仕組み・使い方・サブエージェント隔離・マージ・判断基準・OSSを順に確認していきましょう。
git worktreeとは?並列開発の前提になる仕組み
git worktree(ワークツリー)は、1つのGitリポジトリに対して複数の作業ディレクトリを作成できる標準機能です。通常のブランチ切り替えでは作業ディレクトリが1つしかないため、ブランチを切り替えるたびにファイルが書き換わります。ワークツリーを使うと、ブランチごとに独立したディレクトリが生成され、複数のブランチを同時に展開できます。各ワークツリーは同じリポジトリの履歴・オブジェクト(.git)を共有しますが、ファイルの状態は互いに独立しているため、片方の編集がもう片方に影響しません。基本的なコマンドは次の通りです。
git worktree add ../feature-x -b feature-x # 新ブランチでワークツリーを作成
git worktree list # ワークツリー一覧を確認
git worktree remove ../feature-x # 作業後に削除
この「履歴は共有、ファイルは分離」という性質が、複数のAIエージェントを同時に走らせても編集が衝突しない並列開発の土台になります。
Claude Codeのワークツリー機能の使い方(–worktree)
Claude CodeはこのワークツリーをCLIにネイティブ対応しています。セッションを隔離ワークツリーで起動するには、--worktree(短縮形-w)フラグを使います。
claude --worktree feature-x
これにより、独立したブランチと専用ディレクトリが作成され、その中でClaude Codeが起動します。1つのリポジトリで複数のセッションを別々のワークツリーで動かせば、片方で機能開発、もう片方でバグ修正、といった作業を編集の衝突なく並行できます。ワークツリーは既定でプロジェクト直下の.claude/worktrees/配下に作成されるため、本体のチェックアウトに未追跡ファイルとして現れないよう、.gitignoreに次の1行を追加しておきましょう。
.claude/worktrees/
フラグやオプションの最新仕様、クリーンアップの挙動は更新されることがあるため、詳細はClaude Code公式ドキュメントの「worktrees」(code.claude.com/docs/en/worktrees)で確認するのが確実です。
サブエージェントをワークツリーで並列実行する(isolation: worktree)
Claude Codeのサブエージェントは、定義ファイルのフロントマターにisolation: worktreeを記述することで、自動的に専用のワークツリーで実行されるようになります。
---
name: feature-builder
isolation: worktree
---
(エージェントへの指示をここに記述)
こうしておくと、そのサブエージェントは一時的なワークツリー上で作業し、変更を加えずに終了した場合はワークツリーが自動的に削除されます。複数のサブエージェントをそれぞれ別のワークツリーで並列実行すれば、各エージェントが自分のブランチ・ディレクトリで作業するため、同一ファイルへの同時書き込みによる上書き破壊を構造的に防げます。エージェント間の連携は、共有のタスクリストやエージェント同士のメッセージでとられ、メインの会話には各エージェントの結果が要約として返るため、コンテキスト消費も抑えられます。「エージェントにワークツリーを使って並列で進めて」と指示する運用でも同様の効果が得られます。
並列開発の進め方とマージ・コンフリクトの対処
並列で実装が終わったら、各ワークツリーのブランチを統合(マージ)します。エージェントが別々のファイルを編集していればマージはクリーンに通ります。一方、複数のエージェントが同じファイルを変更していると、通常の3-wayマージと同様にコンフリクトが発生します。コンフリクトが起きやすいのは、package.jsonやtsconfig.jsonなどの設定ファイル、各モジュールをまとめるインデックスファイル、複数から参照される共有の型定義ファイルなどです。これらは内容の理解が必要なため、自動では解決せず手動で統合するか、片方の変更を破棄して再実行します。マージが完了したら、不要になったワークツリーとブランチはgit worktree removeで片付けます。コンフリクトを減らすコツは、後述するように担当ファイル範囲を重複なく分けておくことです。
並列化が向くケース・向かないケースの判断基準
ワークツリーによる並列開発は強力ですが、すべての作業に有効なわけではありません。次の3点で判断すると失敗を避けやすくなります。
- タスクの独立性:編集対象のディレクトリ・ファイルが完全に分離できるほど効果的です。サービス層とAPI層、フロントとバックなど、境界が明確な分割が向きます。
- 共有ファイルの多さ:共通の設定ファイルや型定義への変更が多いと、並列化で得られる短縮よりコンフリクト解決のコストが上回りがちです。共有ファイルは一方のグループにだけ割り当てるか、先に直しておきます。
- 順序依存の有無:データベースマイグレーションのように実行順序が厳密なタスクは、同時生成すると順序の整合が崩れるため逐次実行が安全です。大規模リファクタリングのように変更が全体へ波及する作業も逐次が向きます。
目安として、独立したタスクが5つ以上あり、担当ファイルをきれいに分けられるなら並列化のメリットが出やすく、3つ以下や共有ファイル中心なら逐次のほうが速く済むこともあります。まずは2つのワークツリーに分けて運用に慣れ、効果を見ながらグループ数を増やすとよいでしょう。
サードパーティのオーケストレーションOSSという選択肢
Claude Code単体でもワークツリーによる並列開発は可能ですが、役割分担エージェントの定義やブランチ統合の自動化までをまとめて提供するオーケストレーション系のOSSも登場しています。たとえば、Gitワークツリー隔離と専門エージェントを組み合わせるccswarm、並列エージェント運用を体系化するclaude-agent-frameworkやclaude_code_agent_farm、複数のAIコーディングツールをワークツリーで横断実行するparallel-codeなどがあります。これらはClaude Codeの上に「計画・分担・統合」の仕組みを足すもので、まずは公式のワークツリー機能で並列開発を体験し、運用を定型化したくなった段階で導入を検討するのが現実的です。導入時は対応バージョンやライセンスを必ず確認してください。
よくある質問(FAQ)
Claude Codeの並列実行(並列開発)とは何ですか?
1つのリポジトリに対して複数のClaude Codeセッションやサブエージェントを同時に動かし、それぞれが別々のブランチ・作業ディレクトリ(git worktree)で開発を進める方式です。作業が物理的に分離されるため、同じファイルを同時に編集して変更が上書きされる事故を防ぎながら、開発のリードタイムを短縮できます。
git worktree(ワークツリー)とは何ですか?
1つのGitリポジトリに複数の作業ディレクトリを作成できる標準機能です。履歴やオブジェクト(.git)は共有しつつ、ブランチごとにファイルの状態を独立させられます。git worktree addで作成し、git worktree listで一覧、git worktree removeで削除します。並列開発では、各エージェントにこのワークツリーを割り当てて編集の衝突を避けます。
Claude Codeでワークツリーを使うにはどうしますか?
セッションを隔離環境で起動するにはclaude --worktree feature-x(短縮形-w)を使います。既定で.claude/worktrees/配下にワークツリーが作られるので、.gitignoreに.claude/worktrees/を追加しておきます。サブエージェントを自動で隔離したい場合は、定義ファイルのフロントマターにisolation: worktreeを記述します。
並列開発で注意すべき点はありますか?
同じファイルを複数エージェントが編集するとマージでコンフリクトが発生します。担当ファイル範囲を重複なく分けることが重要です。また、Windows環境ではワークツリーのロックや削除し残しが起きることがある(公式リポジトリでも改善が議論されています)ため、異常終了時はgit worktree listで残骸を確認してください。マイグレーションなど順序依存のタスクは並列化を避けます。
並列開発に専用のフレームワークは必要ですか?
必須ではありません。Claude Code単体でも--worktreeやサブエージェントのisolation: worktreeで並列開発は行えます。役割分担や統合の自動化まで定型化したい場合に、ccswarmやclaude-agent-frameworkなどのオーケストレーションOSSを追加で検討するとよいでしょう。