Claude Codeのworktreeとは?並列作業でぶつけない方法

この記事の要点
- worktree は、同じリポジトリの履歴を共有したまま、別のファイル一式とブランチを持つ作業フォルダ
- claude --worktree 名前 で起動すると、セッションごとに変更が分かれて混ざらない
- .env などは .worktreeinclude で持ち込み、終わるときは残すか消すかを Claude が確かめる
Claude Code を2つ同時に動かして、別々の作業を進めたいことがあります。ところが同じフォルダで動かすと、片方の変更がもう片方の作業に混ざってしまいます。これを防ぐのが worktree(ワークツリー) です。
この記事では、公式ドキュメント(2026年10月24日確認)にもとづいて、worktree の使い方を手順でまとめます。
結論:「1つの作業=1つの作業フォルダ」にする
git の worktree は、同じリポジトリの履歴とリモートを共有したまま、別のファイル一式とブランチを持つ作業フォルダ です。Claude Code のセッションをそれぞれの worktree で動かせば、片方の編集がもう片方に影響しません。
公式ドキュメントでは、並列の方法を次のように分けています。
- worktree:ファイルの編集を分ける
- サブエージェント:1つのセッションの中で仕事を分ける
- セッション間のメッセージ:別々のセッションどうしで結果を渡す
手順1:worktree で起動する
--worktree(短く -w)に名前を付けて起動します。
claude --worktree feature-auth
既定では、リポジトリの直下の .claude/worktrees/<名前>/ に作業フォルダが作られ、worktree-<名前> という新しいブランチで始まります。別の端末で違う名前を付けて同じコマンドを打てば、2つ目の独立したセッションになります。名前を省くと、Claude が自動で付けます。
公式のすすめとして、.claude/worktrees/ を .gitignore に足しておくと、元のフォルダに未追跡のファイルとして出てきません。
会話の途中で「worktree で作業して」と頼むこともできます。その場合は Claude が専用の道具で worktree を作って移ります。
手順2:.env などを持ち込む
worktree は 新しく取り出したばかりの状態 なので、git で管理していない .env などはありません。作るたびに自動で写したいときは、リポジトリの直下に .worktreeinclude というファイルを置き、写したいファイルを書きます。
.env
.env.local
依存パッケージの入れ直しなどの準備も、worktree の中で別に行います。Claude に「依存を入れて」と頼めば対応します。秘密の値をどこまで写すかは、Claude Codeの権限設定入門 の考え方と合わせて決めておくと安心です。
手順3:終わったら片付ける
対話のセッションを終えるとき、Claude は worktree の中に 消すと失われる作業が残っていないか を確かめます。
| worktree の状態 | Claude Code の動き |
|---|---|
| 変更が何もない | 名前のないセッションなら、worktree とブランチを自動で消す(名前付きなら先に確認) |
| 変更や新しいコミットがある | 残すか消すかを聞く。残すと、あとで戻るためのコマンドが表示される |
| 状態を確かめられない | 自動では消さず、何を確かめられなかったかを示して聞く |
なお、claude -p の非対話モードでは終わりの確認が出ないため、worktree は自動では片付きません。
worktree の中で守られること
worktree で動いている間、Claude Code は 元のフォルダへの書き込みを止めます。具体的には、元のフォルダのファイルを直す操作、元のフォルダで動くコマンド、元のフォルダへ向けた git の操作などが対象です。サブエージェントにも同じ決まりがかかります。
ただし、公式ドキュメントは、シェルのコマンドが どのファイルに書くかまでは追っていない とも書いています。cp などで元のフォルダに書き込むことは、この仕組みだけでは防げません。必ず止めたい操作は、権限の禁止ルールにも書いておきます。
サブエージェントを worktree で分ける
ファイルを書き換える係を並べるときは、係ごとに worktree を使うと変更がぶつかりません。その場で「エージェントごとに worktree を使って」と頼むか、定義ファイルに isolation: worktree と書くと、その係はいつも自分専用の作業フォルダで動きます。
---
name: refactorer
description: たくさんのファイルに同じ直しを入れる係
isolation: worktree
---
サブエージェントの作り方は Claude Codeのマルチエージェント入門、仲間どうしが話し合う形は Claude Codeのエージェントチームとは? で解説しています。
よくある質問
git 以外の管理の仕方でも使えますか?
worktree は git が前提です。ほかの仕組みでは、作るときと消すときの処理を フック で置き換えます。フックの基本は Claude Codeのフックとは? で解説しています。
デスクトップアプリでも使えますか?
使えます。デスクトップアプリにはセッションを自分の worktree で動かす設定があります。手順は公式ドキュメントのデスクトップの項目を確認してください。
まとめ
- worktree は 履歴を共有したまま、別のファイル一式を持つ作業フォルダ
claude --worktree 名前で起動すると、セッションごとの変更が混ざらない.envは.worktreeincludeで持ち込み、終わるときは 残すか消すかを Claude が確かめる
出典
この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。


