Claude Code並列開発の始め方|git worktreeで同時に回す

by Synth
Claude Code並列開発の始め方|git worktreeで同時に回す

Claude Codeで複数のタスクを同時に進める「git worktree」の使い方を、公式ドキュメントに沿って解説。--worktreeフラグの最短3ステップ、.worktreeinclude設定、サブエージェント並列化まで、つまずきどころ込みで紹介する。

Claude Code で新機能を作らせている最中に、別のバグも直したい」——そう思って同じフォルダで2つ目を起動したら、ファイルがぶつかって台無しになった。そんな経験、ありませんか?結論から言うと、これは git worktree で解決できます。1つのリポジトリの中に、ブランチごとの独立した作業部屋を複数持てる仕組みで、Claude Codeはこれを正式にサポートしています。この記事では、公式ドキュメントに沿って、最短の始め方からつまずきどころまでを非エンジニアにも分かるように整理します。

この記事のまとめ(TL;DR)

  • git worktreeは「1リポジトリに複数の作業ディレクトリ」を持てる仕組み。cloneより軽い
  • Claude Codeclaude --worktree <名前>(短縮形 -w で worktree を自動生成して起動
  • 作られる場所は .claude/worktrees/<名前>/、ブランチは worktree-<名前>
  • 別ターミナルで別名を指定すれば、衝突ゼロで2つ目・3つ目のセッション を並走できる
  • .env など無視ファイルは .worktreeinclude で各worktreeに自動コピー
  • サブエージェントも isolation: worktree で並列化できる
  • 作業が残ったworktreeを消すと中身も消えるので、片付け時は要注意

1. git worktreeとは?なぜClaude Codeで重要?

まず結論。git worktreeとは、同じリポジトリの履歴(.git)を共有したまま、作業ディレクトリとブランチだけを別々に分ける 仕組みです。公式ドキュメントの言葉を借りれば「それぞれのworktreeが自分のファイルとブランチを持ち、リポジトリの履歴とリモートは本体と共有する」ものです。

なぜClaude Codeで重要かというと、AIエージェント人間のチームと同じように並列化できる からです。1人のClaudeが機能開発、もう1人がバグ修正、と別々の部屋で同時に動かせば、片方の編集がもう片方のファイルを壊すことがありません。

似た手段との違いを整理しておきましょう。

手段ディスク消費履歴の共有用途
ブランチ切り替え共有1つの作業を順番に進める(同時は不可)
git clone(複製)分かれる完全に別環境が欲しいとき
git worktree共有同時に複数タスクを並列で進めたいとき

ブランチ切り替えは手軽ですが、1つの作業ディレクトリを使い回すので「同時進行」はできません。cloneは同時進行できますが、リポジトリを丸ごと複製するのでディスクを食い、履歴も分かれます。worktreeは両者のいいとこ取り で、履歴を共有しつつ同時作業ができる。ここがAIエージェントの並列運用と相性が良い理由です。

2. 最短の始め方(3ステップ)

前提は2つだけ。Claude Codeがnpm経由で入っていること、そして gitリポジトリで最低1つコミットがあること です。ここが満たせていれば、あとは3ステップです。

ステップ1:最初のworktreeを起動する

claude --worktree feature-auth

これだけで、.claude/worktrees/feature-auth/ の下にworktreeが作られ、worktree-feature-auth という新しいブランチでClaudeが起動します。名前を省略すると bright-running-fox のような名前が自動で付きます。短縮形の -w でも同じです。

💡 最初の一回だけ注意 インタラクティブ実行には「ワークスペースの信頼(workspace trust)」が必要です。そのディレクトリで初めてClaudeを使う場合は、一度 claude を実行して信頼ダイアログを承認しておきましょう。承認していないと --worktree はエラーで止まります。

ステップ2:別ターミナルで2つ目を起動する

claude --worktree bugfix-login

別の名前を指定して別のターミナルで実行すれば、完全に独立した2つ目のセッション が立ち上がります。1つ目が機能を作っている裏で、2つ目がバグを直す——これが並列開発の基本形です。3つ目、4つ目も同じ要領で増やせます。

ステップ3:片付ける

インタラクティブなセッションを終了すると、Claude Codeがworktreeの中身をチェックします。変更が何も無ければ自動で削除(名前付きセッションは確認あり)、作業が残っていれば「残すか消すか」を聞いてくれます。まずは --worktree で1つ試して、終了時の確認に任せるのが安全な入り口です。

3. .worktreeinclude と .gitignore の設定(つまずきポイント)

ここが実務で最初に引っかかる場所です。worktreeは まっさらなチェックアウト なので、.env.env.local のような gitで無視しているファイルは、新しいworktreeにコピーされません。「本体では動くのに、worktreeだと環境変数が無くて動かない」の正体はこれです。

解決策は、プロジェクトのルートに .worktreeinclude ファイルを置くことです。.gitignore と同じ書式で、コピーしたいファイルを列挙します。

.env
.env.local
config/secrets.json

こう書いておくと、Claude Codeがworktreeを作るたびに、これらのファイルを自動でコピーしてくれます(gitで無視されているファイルだけが対象なので、追跡済みファイルが二重になる心配はありません)。

もう一つ、公式が勧めているのが .claude/worktrees/.gitignore に追加する こと。これをやらないと、worktreeの中身が本体側で「追跡されていないファイル」として大量に見えてしまい、ノイズになります。

⚠️ 消すときは慎重に -p を付けた非インタラクティブ実行では終了時の片付けプロンプトが出ません。この場合は git worktree remove で自分で消す必要があります。変更が残ったworktreeを消すと作業も一緒に失われるので、git worktree list で棚卸ししてから片付けましょう。

4. サブエージェントも並列化する

Claude Codeの並列化は、セッション単位だけではありません。サブエージェント(Claudeが呼び出す下請けエージェント)も、それぞれ専用のworktreeで動かせます

一番簡単なのは、セッション中に「エージェントはworktreeを使って」と頼むこと。恒久的にしたいなら、カスタムサブエージェントのフロントマターに isolation: worktree を1行足します。

---
name: refactorer
description: 多数のファイルにまたがる機械的なリファクタを適用する
isolation: worktree
---

依頼されたリファクタを対象ファイルすべてに適用し、テストを実行して結果を報告する。

こうすると、そのサブエージェントは毎回自分専用のworktreeで動くので、複数のエージェントが同時にファイルを書き換えても衝突しません。変更なしで終わったworktreeはClaude Codeが自動で片付け、変更が残ったものは定期掃除(cleanupPeriodDays 設定に従う)まで残ります。サブエージェントの基本は Claude Code サブエージェント活用ガイド にまとめています。

なお、デスクトップアプリを使っている人は、新しいセッションごとに自動でworktreeが割り当てられる ので、この設定を意識せずに並列化の恩恵を受けられます。

あなたへの影響

「自分はガッツリ開発しないし」という人にも、3つの意味があります。

1. AIコーディングの生産性が段違いになる
複数タスクを順番待ちさせず同時に回せるので、体感の開発速度が変わります。特に「機能追加とバグ修正を行き来する」ような日常作業で効きます。基本の使い方は Claude Code 完全ガイド 2026 から押さえるとスムーズです。

2. “AIに複数タスクを任せる”時代の前提知識になる
これからのAI開発は「1つのAIに1つずつ」ではなく「複数のAIを並列で」が標準になっていきます。worktreeはその土台の技術です。仕組みを知っておくと、ツールの進化についていきやすくなります。

3. 副業・個人開発の効率が上がる
個人開発者やClaude Codeで副業をする人にとって、並列化は時間あたりの成果に直結します。限られた時間で複数案件を回すなら、覚えておいて損はありません。

まとめ

git worktreeは、地味に見えて「AIエージェントを並列で走らせる」ための土台になる技術です。claude --worktree <名前> で始めて、.worktreeinclude で環境ファイルを引き継ぎ、片付けだけ気をつける——まずはこの3点で十分に恩恵を受けられます。1つのタスクを順番待ちさせている人ほど、並列化の効果は大きいはずです。今日、手元のリポジトリで claude --worktree test を一度打ってみるところから始めてみてください。

関連記事(ハブリンク)

FAQ

Q. git worktreeを使うと何が便利になりますか?
A. 1つのリポジトリで、ブランチごとに独立した作業ディレクトリを同時に持てます。Claude Codeを各worktreeで別々に起動すれば、あるセッションが新機能を作っている間に、別セッションがバグ修正を進められ、ファイルの衝突が起きません。

Q. git worktreeはクローン(clone)とどう違うのですか?
A. cloneはリポジトリ全体を丸ごと複製しますが、worktreeは同じ.gitの履歴を共有したまま、作業ディレクトリだけを分けます。ディスク消費が少なく、コミット履歴やリモートを共有できるのが利点です。

Q. Claude Codeでworktreeを作る最短の方法は?
A. ターミナルで claude --worktree 名前(短縮形は -w)を実行するだけです。.claude/worktrees/名前/ の下にworktreeが作られ、worktree-名前 という新しいブランチでClaudeが起動します。

Q. worktreeを消すと作業内容も消えますか?
A. 変更やコミットが残っているworktreeを削除すると、その中の作業も一緒に消えます。Claude Codeは終了時に作業が残っていれば確認してくれますが、git worktree remove を自分で叩くときは注意が必要です。

参考にしたソース

ーー Synth

ヘッダー画像: Photo by Lukas Blazek on Pexels

S

Synth

explAInのライター。AIの今をやさしく、忖度なしで。