git worktreeでClaude Codeを並列実行する方法|複数AIエージェント開発を衝突なく進める【2026年】
\nClaude Codeで「機能開発しながら、別のバグ修正も同時に進めたい」——そんなときに効くのが git worktree です。各セッションを独立した作業ディレクトリに分離することで、ファイルの衝突なく複数のAIを並列で走らせられます。本記事では --worktree フラグの使い方からサブエージェントの分離、後始末までを解説します。
Claude Codeのgit worktree並列実行は、複数のAIセッションを「別々の作業ディレクトリ」に分けて同時に動かす手法です。同じリポジトリを共有しつつ、各セッションのファイル編集が互いに干渉しないため、1つのターミナルで新機能を作りながら、別のターミナルでバグ修正を進める、といった並行開発が安全に行えます。順番に見ていきましょう。
\n\ngit worktreeとは?なぜAI並列開発に向くのか
\n\ngit worktree は、1つのリポジトリから複数の作業ディレクトリを作れるGitの標準機能です。各ワークツリーは独自のファイルとブランチを持ちますが、リポジトリの履歴とリモートは共有します。
\n\n通常、1つのフォルダで複数の作業を並行すると、ブランチの切り替えのたびにファイルが上書きされ、AIエージェント同士が同じファイルを触って衝突します。worktreeで作業場所を物理的に分ければ、「片方のセッションの編集が、もう片方のファイルに触れない」状態を作れます。これがAI並列開発と相性が良い理由です。
\n\n3つの並列化アプローチの違い
\nworktreeはファイルの分離を担当します。これに対し「サブエージェント」や「エージェントチーム」は作業そのものの調整を担当します。両者は組み合わせて使えます(後述)。Claude Codeの基本操作は便利な使い方まとめもどうぞ。
\nClaude Codeでworktreeを使う3つの方法
\n\n① –worktree フラグで分離セッションを起動する(基本)
\n\nいちばん簡単なのは、起動時に --worktree(短縮形 -w)を渡す方法です。分離されたworktreeを作り、その中でClaudeを起動します。
claude --worktree feature-auth
デフォルトでは、worktreeは .claude/worktrees/feature-auth/ に作られ、worktree-feature-auth という新しいブランチ上で開始します。名前を省略すると、bright-running-fox のような名前が自動生成されます。
claude --worktree # 名前は自動生成
初回だけ必要な準備
\nそのディレクトリで初めて --worktree を使う前に、一度ふつうに claude を実行してワークスペース信頼ダイアログを承認しておく必要があります。未承認だと --worktree はエラーで終了します。また .claude/worktrees/ は .gitignore に追加しておくと、メイン側で未追跡ファイルとして表示されず安心です。
② セッション中に「worktreeで作業して」と頼む
\n\nすでに起動中のセッションからでも、自然言語でworktreeに移れます。
\n\nこのタスクは worktree を作って、その中で作業して
Claudeが EnterWorktree ツールで新しいworktreeを作成し、そこへ切り替えます。元のworktreeはディスク上にそのまま残ります。
③ git worktree add で手動管理する
\n\nworktreeの場所やブランチを自分で完全に制御したい場合は、Gitコマンドで直接作ります。リポジトリの外に置きたいときや、既存ブランチをチェックアウトしたいときに便利です。
\n\n# 新しいブランチで worktree を作る\ngit worktree add ../project-feature-a -b feature-a\n\n# 既存ブランチから作る\ngit worktree add ../project-bugfix bugfix-123\n\n# その中で Claude を起動\ncd ../project-feature-a && claude
複数セッションを並列で走らせる(実践)
\n\n並列実行のやり方はシンプルです。ターミナルを複数開き、それぞれ別の名前で --worktree を実行するだけです。
# ターミナル1:新機能の開発\nclaude --worktree feature-auth\n\n# ターミナル2:別の不具合を修正\nclaude --worktree bugfix-123
2つのClaudeセッションが別々のディレクトリ・ブランチで動くため、同時に編集してもファイルが衝突しません。フロントエンド・バックエンド・テストをそれぞれ別セッションに割り当てて、開発を一気に進めるといった使い方ができます。
\n\nベースブランチを選ぶ
\nworktreeはリモートの origin/HEAD から分岐し、クリーンな状態で始まります。手元の未コミットの作業を引き継いで始めたい場合は、設定で worktree.baseRef を "head" にします。特定のPRから始めるなら claude --worktree "#1234" のようにPR番号を渡せます。
サブエージェントをworktreeで分離する(isolation: worktree)
\n\n1つのセッション内で複数のサブエージェントを並列で動かす場合も、worktreeで分離すれば編集が競合しません。カスタムサブエージェントのフロントマターに isolation: worktree を追加すると、常にworktreeで実行されるようになります。
---\nname: backend-builder\ndescription: バックエンドAPIの実装を担当\nisolation: worktree\n---
各サブエージェントは一時的なworktreeを受け取り、変更なしで完了すれば自動的に削除されます。その場限りで「worktreeを使って」と頼むだけでも分離できます。チーム開発での役割分担はチーム開発を始める完全ガイドも参考になります。
\n\n環境ファイル(.env)を引き継ぐ:.worktreeinclude
\n\nworktreeは新しいチェックアウトなので、.env や .env.local のような追跡されていないファイルは存在しません。そのままだと「環境変数がなくて動かない」とつまずきがちです。
プロジェクトルートに .worktreeinclude を置くと、新しいworktree作成時に自動でコピーされます。記法は .gitignore と同じです。
# .worktreeinclude\n.env\n.env.local\nconfig/secrets.json
これは --worktree・サブエージェントのworktree・デスクトップアプリの並列セッションすべてに適用されます。なお、各worktreeでは依存関係のインストール(npm install など)も改めて必要です。
後始末(クリーンアップ)と注意点
\n\nworktreeは作りっぱなしにすると散らかります。終了時の挙動を押さえておきましょう。
\n\n| セッション終了時の状態 | 挙動 |
|---|---|
| 変更なし(コミット・未追跡ファイルなし) | worktreeとブランチが自動削除(名前付きセッションは保持の確認あり) |
| 変更・未追跡ファイル・新規コミットあり | 保持するか削除するかプロンプトで確認 |
-p での非対話実行 | 自動削除されない。git worktree remove で手動削除 |
手動で整理するコマンドはこちらです。
\n\ngit worktree list # 一覧を確認\ngit worktree remove ../project-feature-a # 削除\n# 変更が残っている場合は --force を付ける
注意点
\nworktreeで作業した変更も、もちろんコミット・プッシュが必要です。並列で動かすと「どのworktreeで何をしたか」を見失いやすいので、こまめにコミットし、セッションに名前を付けるのがおすすめ。AIが想定外のreset/force pushをした場合の戻し方はClaude CodeのGitやらかしを元に戻す方法にまとめています。
\nよくある質問(FAQ)
\n\nQ. worktreeとブランチ切り替えは何が違う?
\nブランチ切り替え(git switch)は1つのフォルダの中身を入れ替えますが、worktreeはフォルダ自体を別に持ちます。そのため複数ブランチを同時に開いて、並行作業できます。
Q. 何セッションまで並列にできる?
\n技術的な固定の上限はなく、ターミナルを増やせばその分動かせます。ただしマシンのCPU・メモリやAPIの利用枠が現実的な上限になります。まずは2〜3並列から試すのが無難です。
\n\nQ. worktreeのファイルが消えた?
\n削除を選ぶと、未コミットの変更ごとworktreeが消えます。残したい変更は削除前に必ずコミットしてください。
\n\nQ. Git以外(SVNなど)でも使える?
\nworktree分離はデフォルトでGit用ですが、WorktreeCreate/WorktreeRemove フックを設定すれば、SVNやMercurialでも独自の作成・削除ロジックを組めます。
まとめ
\n\nClaude Code × git worktree のまとめ
\n・claude --worktree 名前 で分離セッションを起動。複数ターミナルで並列実行
・サブエージェントは isolation: worktree で競合なく分離できる
・.worktreeinclude で .env などを各worktreeへ自動コピー
・各worktreeで依存インストールが必要。.claude/worktrees/ は .gitignore へ
・終了時は自動or確認で削除。残すなら先にコミット、手動整理は git worktree remove
git worktreeを使えば、Claude Codeを「1人のAI」から「並行して働く複数のAI」へと拡張できます。まずは2つのターミナルで --worktree を試し、機能開発とバグ修正を同時に走らせる感覚をつかんでみてください。Git操作そのものの任せ方はClaude CodeでGit操作を自動化する方法で解説しています。


