Claude Code を2〜3個同時に走らせる|git worktree で並列開発する海外流儀
📝 はじめに
Claude Code を毎日使っている海外エンジニアに聞くと、意外と多い返事が「同時に 2〜3 個起動している」というもの。X や Reddit の Claude Code コミュニティでは常識化しつつあるこの使い方が、日本語圏ではほとんど語られていません 。
「え? 1 つのプロジェクトで Claude Code を複数起動したら、ファイルの取り合いでカオスにならない?」と思いますよね。その通りで、1 つのディレクトリで並列起動するのは事故の元です。
そこで登場するのが git worktree です。
この記事では、git worktree を使って Claude Code を複数並列で走らせる 海外流儀のワークフロー を、セットアップから運用のコツまで紹介します。
Advertisement
📝 git worktree とは?
git worktree は、1 つのリポジトリから複数のワーキングディレクトリを生成できる Git 標準機能です。Git 2.5 から使えるのに、日本語の解説記事が少なくマイナー扱いされがちな機能でもあります。
通常の git checkout との違いを表にすると分かりやすいです。
| 項目 | git checkout | git worktree |
|---|---|---|
| ディレクトリ | 同じ場所で切り替え | 別ディレクトリに展開 |
| 同時作業 | できない(切り替えが必要) | 複数ブランチを同時に開ける |
| .git リポジトリ | 1 つ | 共有(容量が増えない) |
| stash の必要性 | あり | なし |
イメージとしてはこんな感じ。
my-project/ ← main ブランチ(本体)
my-project-refactor/ ← refactor ブランチ(worktree)
my-project-bugfix/ ← bugfix ブランチ(worktree)
1 つのリポジトリから 3 つの「作業場所」が生えている 状態です。Git はこれらをまとめて管理してくれます。
📝 なぜ Claude Code と相性がいいのか
Claude Code は 1 つのタスクを実行している間、基本的に 他の作業は止まります 。リファクタのように時間がかかる作業を投げたら、終わるまで待つしかありません。
ここで別の worktree を用意して、そこで 別の Claude Code を起動 すれば:
- メイン: 長時間かかるリファクタを任せる
- worktree A: その間に新機能の実装を進める
- worktree B: 別の緊急バグ修正をサクッと片付ける
という 3 並列 が実現します。しかもそれぞれ別ブランチなので、作業が混ざる心配はゼロ。
「AI に待たされる時間」を「別の AI に働かせる時間」に変える ——これが並列化の本質です。
Advertisement
📝 実際のセットアップ手順
🔹 1. worktree を追加する
メインのプロジェクトディレクトリで、追加したいブランチを worktree として展開します。
# 既存のブランチを worktree として開く
git worktree add ../my-project-refactor refactor
# 新しいブランチを同時に作って worktree として開く
git worktree add -b feature/new-login ../my-project-login
これで my-project/ の隣に my-project-refactor/ と my-project-login/ が生成されます。リポジトリのクローンではない ので、容量もほとんど食いません(.git は共有)。
🔹 2. それぞれで Claude Code を起動
ターミナルを 3 つ(あるいは tmux のペインを 3 つ)開き、各 worktree で claude を起動します。
# ターミナル 1(メイン)
cd my-project
claude
# ターミナル 2(リファクタ用)
cd ../my-project-refactor
claude
# ターミナル 3(新機能用)
cd ../my-project-login
claude
3 つのターミナルで独立した Claude Code が走ります。各 Claude は自分の worktree のファイルしか見えない ので、指示が混ざることはありません。
🔹 3. 使い終わったら片付ける
# worktree を削除(ブランチは残る)
git worktree remove ../my-project-refactor
# 強制削除(未コミットの変更がある場合)
git worktree remove --force ../my-project-refactor
# 現在の worktree 一覧を確認
git worktree list
worktree を消してもブランチ自体は残るので、後から再度 worktree add で復活させることもできます。
Advertisement
📝 運用スタイルの例
実際に私がやっている使い分けです。
| worktree | 用途 | Claude Code への指示例 |
|---|---|---|
| main | 機能実装 | 「〇〇機能を実装して」 |
| refactor | 継続リファクタ | 「このファイルを責務ごとに分割して」 |
| bugfix | 緊急バグ修正 | 「Issue #123 のバグを直して」 |
| docs | ドキュメント整備 | 「README を最新の構成に合わせて更新して」 |
それぞれの Claude は自分の context しか持たない ので、指示も履歴も完全に分離されます。
🔹 特に効くシーン
- レビュー待ちの時間:PR を出してレビュー待ちの間、別 worktree で次のタスクに着手
- 長時間タスク:巨大ファイルのリファクタを 1 つに任せ、別 worktree で小さい修正を進める
- A/B 実験:同じ機能を 2 つの方針で実装してみて、良い方を採用する
- 緊急割り込み:機能実装中に緊急バグが来ても、main の worktree で即対応できる(作業中のブランチを中断しなくていい)
📝 注意点・ハマりポイント
🔹 node_modules と .env は worktree ごとに必要
Git 管理外のファイル(node_modules/ 、.env 、ビルド成果物など)は worktree ごとにセットアップが必要 です。
cd ../my-project-refactor
npm install # node_modules を作る
cp ../my-project/.env .env # .env をコピー
ディスク容量は食いますが、それぞれ独立していることが逆に安全でもあります。pnpm を使っていれば node_modules が実質シンボリックリンクなのでほぼノーコストです。
🔹 同じブランチを 2 つの worktree で開けない
main ブランチを 2 つの worktree でチェックアウトすることはできません(Git の制約)。並列化したい場合は、それぞれ別のブランチ を用意しましょう。
🔹 worktree の場所はリポジトリの外が無難
my-project/my-project-refactor/ のように リポジトリの中に作ると、.gitignore に追加しない限り自分自身の変更として見えてしまいます。リポジトリの 親ディレクトリに並べる のが一般的です。
workspace/
├── my-project/ ← 本体
├── my-project-refactor/ ← worktree
└── my-project-bugfix/ ← worktree
🔹 Claude Code 間の情報共有はできない
それぞれの worktree で起動した Claude Code は完全に独立しているので、「別 worktree で何をやったか」は共有されません 。全体の進捗は自分で把握する必要があります。
ここは将来的に CLAUDE.md の共通化や、MCP サーバー経由での状態共有などで解決できそうな領域です。
Advertisement
📝 実例:この記事を書いているときの状況
ちなみにこの記事を書いている今、私は Claude Code を 2 つ起動しています。
- メイン:この記事の執筆
- worktree:別記事のサムネイル画像を一括リサイズするスクリプトを書かせている
記事を書きながら、裏で画像処理が終わるのを待つ必要がない。これが並列化の価値 です。作業時間が物理的に 2 倍近くになる感覚があります。
📝 さいごに
git worktree × Claude Code は、一度味わうと元に戻れない 生産性ブーストです。特に Claude Code は「AI の作業待ち」が頻繁に発生するツールなので、その間に別の仕事を走らせられる意味は本当に大きいです。
日本ではまだほとんど紹介されていませんが、海外の Claude Code ヘビーユーザーは 当たり前のように並列化しています 。「自分は Claude Code を使いこなしてる」と思っている人ほど、ぜひ一度試してみてください。1 個しか動かしていないのは、本当にもったいない です。
次回は Claude Code Hooks でガードレールを作る 話を書く予定です。AI の暴走を物理的に止める仕組みで、これも日本語記事がほぼ無い領域。お楽しみに。
Advertisement
関連記事
Claude Code カスタムスラッシュコマンドの作り方|毎回同じ指示を打つのをやめる
Claude Code Hooks で AI の暴走を止める|.env 読み込み拒否から自動 lint まで
Claude Codeで複数エージェントを作って議論させる方法|AI同士のディベートが面白い
Claude Chat と Claude Code の違いを徹底比較|どっちを使うべきか用途別に解説
【2026年3月最新版】ChatGPT vs Claude vs Gemini 徹底比較 | 料金・機能・使い分けを解説
Midjourney v7 プロンプトの書き方・コツ完全ガイド|パラメーター一覧と ChatGPT・Gemini での生成法
ChatGPT・ClaudeでSuno AI用の歌詞とプロンプトを作る方法|AI作曲の歌詞づくりコツ
【2026年3月最新版】Suno AI タグ・プロンプト完全リファレンス|メタタグ一覧と使い方
Hytaleサーバーの立て方|Windows環境でマルチサーバーを構築する方法【2026年3月24日更新】