記事一覧に戻る
development·

Claude Code Worktreeで並列開発する方法|複数タスクを同時進行

Claude CodeとGit Worktreeを組み合わせた並列開発の手法を解説。複数タスクの同時進行、セットアップ方法、運用パターン、注意点まで実務で再現できるレベルで紹介します。

#Claude Code#Claude Code 実践#Worktree#並列開発
Claude Code Worktreeで並列開発する方法|複数タスクを同時進行

Claude Codeにリファクタリングを任せて15分。テストの追加を依頼してさらに10分。その間、ターミナルの前でただ待っている — この「AIの実行待ち時間」は、Claude Codeを使い始めた開発者が最初にぶつかる生産性のボトルネックです。

解決策は Git Worktree との組み合わせです。1つのリポジトリから複数の独立した作業ディレクトリを作成し、それぞれで別のClaude Codeセッションを同時に動かす。これにより「待ち時間」が「並列作業時間」に変わります。

本記事では、Worktreeの基礎からClaude Codeとの連携パターン、3つの実用的な使い分け、リソース管理の注意点までを解説します。Claude Codeの基本についてはClaude Code完全ガイドを参照してください。

結論 — Worktreeで「待ち時間」を「作業時間」に変える

Git Worktreeを活用すれば、1つのリポジトリから複数の作業ディレクトリを作成し、それぞれで独立したClaude Codeセッションを同時に動かせます。Claude CodeがタスクAを実行している間に、別のWorktreeでタスクBに着手する。この並列化が実現する状態は以下の通りです。

Before(Worktreeなし):

10:00 タスクA開始(Claude Codeに依頼)
10:15 タスクA完了 → レビュー
10:20 タスクB開始(Claude Codeに依頼)
10:35 タスクB完了 → レビュー
→ 合計35分(うち待ち時間25分)

After(Worktreeあり):

10:00 Worktree-1: タスクA開始(Claude Codeに依頼)
10:02 Worktree-2: タスクB開始(Claude Codeに依頼)
10:15 Worktree-1: タスクA完了 → レビュー
10:17 Worktree-2: タスクB完了 → レビュー
→ 合計17分(並列実行で18分短縮)

Git Worktreeの基礎

Git Worktreeは、1つのGitリポジトリから複数の作業ディレクトリ(ワーキングツリー)を作成するGitの標準機能です。追加のツールインストールは不要で、Git 2.5以降であれば使えます。

通常のGit運用では、ブランチを切り替えるたびに以下の手間が発生します。

  1. 作業中の変更を git stash で退避
  2. ブランチを切り替え
  3. node_modules の再インストール(依存関係が異なる場合)
  4. 作業後にブランチを戻して git stash pop

Worktreeではこの手間が一切不要です。各ディレクトリが完全に独立しているため、並行して作業できます。

# 現在のリポジトリ構成
~/project/              # mainブランチ(通常の作業ディレクトリ)

# Worktreeを追加した後の構成
~/project/              # mainブランチ
~/project-feat-auth/    # feat/auth ブランチ(Worktree 1)
~/project-fix-login/    # fix/login ブランチ(Worktree 2)

重要な制約: 同一ブランチを複数のWorktreeで同時にチェックアウトすることはできません。ブランチの設計を事前に考えておく必要があります。

セットアップ手順

Worktreeの作成

# 新しいブランチを作成しつつWorktreeを追加
git worktree add ../project-feat-auth -b feat/auth

# 既存のブランチでWorktreeを追加
git worktree add ../project-fix-login fix/login

# 作成したWorktreeの一覧を確認
git worktree list

出力例:

/Users/dev/project              abc1234 [main]
/Users/dev/project-feat-auth    abc1234 [feat/auth]
/Users/dev/project-fix-login    abc1234 [fix/login]

依存関係のインストール

Worktreeは作業ディレクトリが独立しているため、node_modules は共有されません。各Worktreeで依存関係をインストールする必要があります。

# Worktreeディレクトリに移動して依存関係をインストール
cd ../project-feat-auth && pnpm install

# pnpmの場合、グローバルストアからのハードリンクなので
# 実際のディスク使用量は最小限に抑えられる

pnpmを使っている場合のメリット: pnpmはパッケージをグローバルストアに保存し、ハードリンクで参照するため、複数のWorktreeに pnpm install しても実際のディスク使用量はほぼ増えません。npmやyarnを使っている場合は、Worktreeごとに node_modules の実体がコピーされるため、ディスク容量への影響が大きくなります。

Claude Codeの起動

各Worktreeディレクトリで独立したClaude Codeセッションを起動します。

# ターミナルタブ1
cd ~/project-feat-auth && claude

# ターミナルタブ2
cd ~/project-fix-login && claude

CLAUDE.mdはリポジトリのルートに配置されているため、全Worktreeで自動的に読み込まれます。追加の設定は不要です。

Worktreeのセットアップとディレクトリ構成

3つの運用パターン

パターン1: 機能開発 + バグ修正の同時進行

最も典型的なパターンです。新機能の開発中に緊急のバグ修正が入ってきた場合、ブランチの切り替えなしに即座に対応できます。

Worktree-main: ~/project/
  └── Claude Code: ダッシュボード機能を開発中(feat/dashboard)

Worktree-hotfix: ~/project-fix-login/
  └── Claude Code: ログインエラーの緊急修正中(fix/login-error)

実際のプロンプト例(ホットフィックス側):

fix/login-error ブランチで作業中。
src/services/auth-service.ts の login 関数で、
OAuth プロバイダからのレスポンスが null の場合に
TypeError が発生する問題を修正してほしい。

1. 原因を特定する
2. 修正を実施する
3. 再発防止テストを追加する
4. pnpm test を実行して全テストがパスすることを確認する

バグ修正が完了したらPRを作成してマージ。メインの開発作業は一切中断されていません。

パターン2: A/Bアプローチの比較検証

設計の方向性に迷っている場合、2つのWorktreeでそれぞれ異なるアプローチを試し、結果を比較する使い方です。

Worktree-A: ~/project-approach-a/
  └── Claude Code: 状態管理をZustandで実装中

Worktree-B: ~/project-approach-b/
  └── Claude Code: 状態管理をJotaiで実装中

実際のプロンプト例(Aアプローチ側):

このアプリの状態管理をZustandで実装してほしい。
対象はダッシュボードのフィルタリング状態。

要件:
- フィルタ条件(日付範囲、ステータス、担当者)の管理
- URLクエリパラメータとの同期
- フィルタのリセット機能

実装後、以下を教えてほしい:
- コード行数
- ボイラープレートの量
- テストの書きやすさの所感

同じ要件を2つのWorktreeで別のアプローチで実装させ、コード量・テスタビリティ・型安全性を比較して意思決定に使います。比較が終わったら、採用しなかったアプローチのWorktreeは削除するだけです。

パターン3: 複数PRの同時作成

大きなタスクを複数の小さなPRに分割して並列に作業するパターンです。

Worktree-1: ~/project-pr-types/
  └── Claude Code: 型定義の整備(PR #1)

Worktree-2: ~/project-pr-tests/
  └── Claude Code: テストの追加(PR #2)

Worktree-3: ~/project-pr-refactor/
  └── Claude Code: リファクタリング(PR #3、PR #1 に依存)

注意点: PR間に依存関係がある場合(PR #3がPR #1のマージを前提とする等)は、依存するPRがマージされてから作業を開始してください。並列化できるのは独立したPRのみです。

3つの運用パターンの比較と使い分け

リソース管理の注意点

ディスク容量の管理

各Worktreeに node_modules やビルド成果物が生成されるため、放置するとディスク容量を圧迫します。

# 不要になったWorktreeの削除
git worktree remove ../project-feat-auth

# 削除し忘れたWorktreeのクリーンアップ(ディレクトリだけ消した場合)
git worktree prune

# 全Worktreeの一覧確認
git worktree list

実用的なルール: PRがマージされたら、対応するWorktreeを即座に削除する習慣をつけてください。git worktree list を週1回確認するのも有効です。

メモリとCPUの考慮

複数のClaude Codeセッションを同時に動かすと、メモリとCPUの消費が増加します。

同時セッション数推奨メモリ備考
1セッション8GB通常の開発
2セッション16GB最も一般的な並列構成
3セッション以上32GB大規模プロジェクト向け

各Worktreeでdev serverやテストウォッチャーを起動する場合は、さらにリソースが必要になります。実用的には2-3セッションの並列が、管理コストとリソース消費のバランスが取れるラインです

コミット時の注意

複数のWorktreeが同じリポジトリを共有しているため、コミット操作には注意が必要です。

# 各Worktreeでコミットする際は、対象ファイルを明示的に指定する
git add src/services/auth-service.ts src/services/auth-service.test.ts
git commit -m "fix: OAuthレスポンスのnullチェックを追加"

# git add . は絶対に使わない(他のWorktreeの変更は混入しないが、
# そのWorktreeに意図せず作成されたファイルを巻き込むリスクがある)

CLAUDE.mdに git add . は使用禁止。変更ファイルを個別に git add する と記述しておくことで、Claude Codeによるコミット時にも安全性が担保されます。

セットアップの自動化

Worktreeの作成と初期セットアップを毎回手動で行うのは手間です。シェルスクリプトで自動化すると効率的です。

#!/bin/bash
# worktree-setup.sh
# 使い方: ./worktree-setup.sh feat/new-feature

BRANCH_NAME=$1
DIR_NAME=$(echo $BRANCH_NAME | tr '/' '-')
WORKTREE_PATH="../project-${DIR_NAME}"

echo "Creating worktree: ${WORKTREE_PATH} (${BRANCH_NAME})"
git worktree add "${WORKTREE_PATH}" -b "${BRANCH_NAME}"
cd "${WORKTREE_PATH}" && pnpm install
echo "Ready! Run: cd ${WORKTREE_PATH} && claude"

このスクリプトをプロジェクトルートに配置しておけば、./worktree-setup.sh feat/dashboard で新しいWorktreeの作成から依存関係のインストールまで完了します。

よくある質問

よくある質問

まとめ — Worktreeで開発の並列度を上げる

Git WorktreeとClaude Codeの組み合わせは、AIエージェントの実行待ち時間を有効活用するための実用的な手法です。セットアップは git worktree addpnpm install の2コマンドで完了し、追加のツールは不要です。

まずは2つのWorktreeから始めてみてください。Claude Codeに1つのタスクを任せている間に、もう1つのWorktreeで別の作業を進める。この「待たない開発」の感覚を掴めば、3つ目のWorktreeを追加するタイミングも自然にわかるようになります。

ただし、並列度を上げすぎると管理コストがリソース節約を上回ります。「同時に2-3セッション、PRがマージされたら即削除」を基本ルールとして、チームの開発スループットを引き上げていきましょう。

koromo からの提案

AIツールの導入判断は、突き詰めると「投資対効果が合うか」「リスクを管理できるか」「事業にどう効くか」の3点に帰着します。koromo では、この判断に必要な材料を整理するところからご支援しています。

以下のような状況にある方は、まず現状の整理だけでも前に進むきっかけになります。

  • AIで開発や業務を効率化したいが、自社に合う方法がわからない
  • 社内にエンジニアがいない / 少人数で、AI導入の進め方に見当がつかない
  • 外注先の開発会社にAI活用を提案したいが、何を求めればいいか整理できていない
  • 「AIを使えばコスト削減できるはず」と感じているが、具体的な試算ができていない

ツールを使った上で相談したい方はお問い合わせフォームから「Claude Codeを活用した並列開発の相談」とご記載ください。初回の壁打ち(30分)は無料で対応しています。

関連記事

本記事の更新方針: 本記事は定期的に内容を見直しています。記事内の判断軸・運用パターンは執筆時点での koromo の実務的知見に基づくものであり、個別環境での効果を保証するものではありません。仕様の最新情報は必ず Anthropic 公式ドキュメント をご確認ください。

関連記事