Build This Now
Build This Now
クロード・コードとは何か?Claude Code のインストールClaude Code ネイティブインストーラーClaude Code で最初のプロジェクトを作る
Subscription BillingMulti-Tenant SaaSAI Chat FeatureRate LimitingStripe WebhooksSemantic SearchRealtime UpdatesDrip Email Sequencesv2.1.122 Release NotesClaude Code の Dynamic Workflows:実際のコードベースで 1,000 個の subagents を動かす方法Claude Code ベストプラクティスClaude Opus 4.7 ベストプラクティスVPS上でのClaude CodeGit 統合Claude Code レビューClaude Code WorktreesClaude CodeリモートコントロールClaude Code ChannelsChannels、Routines、Teleport、DispatchClaude Code スケジュールタスクClaude Code権限管理Claude Code オートモードClaude Code で Stripe 決済を組み込むフィードバックループTodoワークフローClaude Code タスク管理プロジェクトテンプレートClaude Code の料金とトークン使用量Claude Code の料金:実際にいくら払うことになるのかClaude Code Ultra Review 完全ガイドClaude Code で Next.js アプリを作るSupabase DatabaseVercel DeepsecTest-Driven DevelopmentClaude Code で SaaS の MVP を作る方法Claude Code で認証を追加する(Supabase Auth)Claude Code でトランザクションメールを追加する(Resend + React Email)Claude Code で型安全な API を作る(oRPC + Zod)File UploadsBackground Jobs (Inngest)Admin DashboardFull-Text Searchエージェント型コマース:AI エージェントが支払えるアプリの作り方1M ContextGitHub ActionsHeadless ModeMax Plan vs APIPrompt Caching2026年、Claude Code で SaaS を作るといくらかかるかParallel AI AgentsCoding Agent Injection
speedy_devvkoen_salo
Blog/Handbook/Workflow/Git Worktrees

Claude Code Worktrees

--worktreeフラグ、自動命名ブランチ、デスクトップの並行セッション、サブエージェントの分離、そしてGitを使わないチームでもClaude Codeを安全に実行できるフックのパターンを解説。

設定をやめて、構築を始めよう。

AIオーケストレーション付きSaaSビルダーテンプレート。

企業向けに構築している実績を見る →
speedy_devvWritten by speedy_devvPublished Jan 22, 2026Handbook hubWorkflow index

問題: フィーチャーブランチでClaude Codeセッションが順調に進んでいるとき、本番のバグが舞い込んでくる。選択肢はどれも悪い。作業中の状態を失ってスタッシュするか、2つ目のターミナルを開いて2つのセッションが同じファイルを取り合うのを見るか、セッションを完全に中断するか。

素早い解決策: 独自のworktreeの中に2つ目のClaude Codeセッションを開く:

claude --worktree bugfix-123

新しい作業ディレクトリが.claude/worktrees/bugfix-123/に、専用のブランチworktree-bugfix-123として作成される。最初のセッションはそのまま。何もスタッシュされない。衝突もない。2つのClaude Codeセッションが並行して動き、お互いの存在を知らない。

エージェントのパターンを選ぶ場合、境界をシンプルに保つこと。1つのセッション内でサブエージェント、スラッシュコマンド、軽量な特化が必要ならAgent Fundamentalsを読む。ファイルシステムの分離、別々のブランチ、同じチェックアウトに触れてはいけない並行作業が実際の問題であれば本ページを読む。その分離の上でのオーケストレーションの形についてはAgent Patternsを読む。

Worktreesが変えること

サブエージェントやバックグラウンドエージェントを使ってClaude Codeを追い込んだことがある人なら、天井にぶつかったことがある。2つのエージェントが同時に同じファイルを編集し始める。一方がsrc/auth.tsを書き換えている間、もう一方が同じモジュールの途中にいる。戻ってくるのは半分だけ適用された変更、マージの混乱、あるいはそれ以上のひどい状態だ。

Worktreesはこれをファイルシステムレベルで解決する。それぞれが独自のブランチ、ディレクトリ、インデックスを持つリポジトリの別々のチェックアウトだ。Worktreeのサポートは Claude Code v2.1.50でファーストクラスとなり、CLIからDesktopアプリ、カスタムエージェントまで、作成、管理、削除をカバーしている。

CLI: --worktreeフラグ

--worktreeフラグ付きでClaude Codeを起動するのが最速の入り口だ。

名前付きworktree

# 名前付きworktreeでClaudeを起動
claude --worktree feature-auth
 
# 作成されるもの:
# .claude/worktrees/feature-auth/  (作業ディレクトリ)
# Branch: worktree-feature-auth    (デフォルトのリモートブランチから分岐)

すべてのworktreeは.claude/worktrees/以下の専用フォルダに、専用ブランチとともに配置される。ディスクが許す限りいくつでも起動できる。

自動命名worktree

# Claudeに名前を生成させる
claude --worktree

ブランチ名が重要でない使い捨ての実行に便利だ。

複数の並行セッション

# ターミナル1: 認証機能の作業
claude --worktree feature-auth
 
# ターミナル2: バグの修正
claude --worktree bugfix-123
 
# ターミナル3: リファクタリングの探索
claude --worktree experiment-new-router

3つのセッション。3つのブランチ。衝突ゼロ。各セッションはgitの全履歴を参照できるが、各セッション配下のファイルはそれぞれのtreeに存在する。

セッション途中でのworktree作成

起動時にフラグは必須ではない。実行中のセッション内で依頼できる:

You: work in a worktree
Claude: I'll create an isolated worktree for this session...

Claudeがworktreeをセットアップし、セッションをそこに移動する。会話の途中で、最初から作業を分離しておくべきだったと気づいたときに助かる。

デスクトップアプリ: 自動分離

Claude Code デスクトップアプリはさらに一歩進んでいる。すべての新しいセッションがデフォルトで独自のworktreeを持つ。

デフォルトでは、それらのworktreeは.claude/worktrees/に作成される。デスクトップの設定でパスを変更したり、Claudeが作成したブランチをグループ化するためのブランチプレフィックスを設定したりできる。セッションが終わったら、アーカイブアイコンをクリックするとworktreeとそのブランチが削除される。

つまりすべてのデスクトップセッションはデフォルトで安全だ。セッションは互いに上書きしないし、調整する必要もない。

サブエージェントのworktree分離

これがこの機能の真価だ。Claude が分散タスクのために生成する各サブエージェントは、独自のworktreeを持てる。

Claudeにエージェントを分離するよう依頼する

最も簡単な方法:

You: Use worktrees for your agents when doing this refactor

すべてのサブエージェントが独自のworktreeに配置される。編集なしで終了したworktreeは自動的に削除される。実際に変更を加えたworktreeはレビューのために残る。

並行実行で重要な理由

分離なしでは、並行サブエージェントはファイルを読み取るか、重複しないパス内に書き込むことしかできない。それは弱い境界だ。1つのエージェントが別のエージェントのレーンに入り込んだ瞬間、サイレントな衝突が発生する。

分離があれば、各エージェントはコードベース全体を単独で見られる。エージェントAがsrc/auth.tsをある方法で試みる一方、エージェントBが同じファイルを別の方法で試みることができる。両方のブランチを確認して、より良い方を選ぶ(あるいは両方のピースを組み合わせる)。

これはバッチマイグレーションで本当に輝く。1つのAPIから別のAPIに50ファイルを移行したいとする。5つのエージェントを起動し、それぞれ10ファイルを担当させ、すべて独自のworktreeで作業させる。並行して作業し、誰も邪魔されない。組み込みの/batchコマンドもこれと同じレールを使い、1つのプロンプトからworktreeで分離されたエージェントを起動してコードベース全体のマイグレーションを実行する。

分離を内蔵したカスタムエージェント

.claude/agents/以下のカスタムエージェントは、常にworktreeを使うようにピン留めできる:

---
name: refactor-agent
description: Agent that performs isolated refactoring work
isolation: worktree
---
You are a refactoring specialist. Analyze the target code,
plan the refactor, and implement changes.

フロントマターのisolation: worktreeはClaudeにこのエージェントが実行されるたびに新しいworktreeを作成するよう指示する。エージェントは完全な分離で作業し、実行終了時に空のworktreeは自動的に削除される。

Git以外のバージョン管理システムのサポート

Mercurial、Perforce、SVNを使うチームも締め出されない。Worktreeモードはカスタムフックを使って動作する。設定にWorktreeCreateとWorktreeRemoveフックを登録すると、VCS固有の分離ロジックがデフォルトのgitの動作を置き換える。

これらのフックが設定されると、--worktreeフラグとセッション内のworktreeリクエストはgitを呼び出す代わりにフックを通じてルーティングされる。フロー全体のその他の部分は変わらない。

盗む価値のある3つのWorktreeパターン

基本的なアイデアは一度見ればほとんどのチームが理解できる。通常その次に必要なのは、コピーできる動作するパターンだ。

1. フィーチャー作業を壊さずにホットフィックス

フィーチャーブランチの途中にいるとき、本番の認証バグが舞い込んでくる。

# 現在のフィーチャーセッションを生かし続ける
claude

# 2つ目の分離されたバグフィックスセッションを開く
claude --worktree hotfix-auth-timeout

これでホットフィックスはクリーンにリリースでき、フィーチャーセッションはその状態、todo、会話履歴を保持し続ける。これはworktreeの最もシンプルで価値の高い使い方であり、ほとんどのチームが最初に採用するものだ。

2. リスクのあるリファクタリングの競合実装

あるルーティングのリファクタリングに2つの可能な形があるとする。一方は現在のAPIサーフェスを保ちながら内部を移動する。もう一方は外部APIも単純化する。

両方を実行する:

claude --worktree router-safe-path
claude --worktree router-clean-slate

両方のセッションは同じファイルに触れられる。チェックアウトを共有していないからだ。後で両方のブランチをレビューして、より優れたデザインを採用する。これは1つのコンテキスト内で1つのエージェントに両方のパスを推論させようとするよりはるかに優れている。

3. 分離されたサブエージェントによるバッチマイグレーション

1つのロギングAPIを80ファイルで置き換える必要があるとする。5つのエージェントが同じチェックアウトを編集するのは避けたい。

明示的に分割を依頼する:

You: Use worktrees for agents. Split this migration into 5 batches of files.

各ワーカーに以下を与える:

  • リポジトリ全体のビュー
  • 狭いファイルバッチ
  • 分離されたブランチ
  • レビュー可能な結果

これがworktreeが便利な機能からではなく、実際の並行インフラとして機能し始めるポイントだ。

Worktreeを健全に保つ小さなルール

仕組みは簡単だ。チームの習慣こそがworktreeを有用に保つ:

  • Worktreeにはチケット番号だけでなく、成果にちなんだ名前をつける
  • 空または放棄されたworktreeはすぐに削除する
  • アクティブな思考の流れごとに1つのworktreeを使う
  • ブランチのプレフィックスを一貫させてクリーンアップを明確にする
  • 他のブランチと同様に、worktree間のマージ前にdiffをレビューする

Worktreeが煩雑に感じ始めたとすれば、たいていそれは多すぎるからではない。どれが使い捨てでどれが重要なのか、誰にも分からないからだ。

クリーンアップとハウスキーピング

Worktreeのクリーンアップ方法は、その中で実際に何かが変更されたかどうかによって異なる:

  • 変更なし: セッション終了時にworktreeとそのブランチが自動的に削除される
  • 変更あり: Claudeがworktreeを保持するか削除するかを確認する

Worktreeフォルダをバージョン管理から除外するには.gitignoreに1行追加する:

echo ".claude/worktrees/" >> .gitignore

Worktreeが積み重なってきたら、通常のgitコマンドでリストアップと剪定ができる:

git worktree list
git worktree prune

Worktreeを使うタイミング

シナリオWorktreeを使う?理由
単一ファイルのクイックフィックスいいえオーバーヘッドに見合わない
バグを直しながらフィーチャー作業はいフィーチャーとバグフィックスのブランチをクリーンに保つ
マルチエージェントの並行実行はいエージェント間のファイル衝突を防ぐ
多くのファイルのコードマイグレーションはい分離されたエージェントで作業を分割する
実験的なアプローチの探索はい自動クリーンアップ付きの使い捨てworktree
単一の集中したセッションいいえ通常のチェックアウトで十分

経験則として: 衝突を避けるために別のブランチを選ぶときは、代わりにworktreeを選ぼう。ブランチと、それに付随する別の作業ディレクトリの両方が手に入る。

覚えておこう: Worktreesは Claude Codeを1つのスレッドから並行開発環境に変える。分離されたセッションを起動する。分離されたエージェントをディスパッチする。準備ができたら勝者をマージする。

Continue in Workflow

  • エージェント型コマース:AI エージェントが支払えるアプリの作り方
    2026年のエージェント型コマースをわかりやすく解説するガイド。x402、ACP、Machine Payments Protocol が何をするのか、そして AI エージェントが購入できる有料 API を週末で出荷するための手順を紹介します。
  • Claude Code ベストプラクティス
    Claude Codeで成果を出すエンジニアを分ける5つの習慣: PRD、モジュラーなCLAUDE.mdのルール、カスタムスラッシュコマンド、/clearリセット、そしてシステム進化の思考法。
  • Claude Code オートモード
    2つ目の Sonnet モデルが、Claude Code のすべてのツール呼び出しを実行前に審査します。オートモードがブロックするもの・許可するもの、そして settings.json に追加される許可ルールについて解説します。
  • Channels、Routines、Teleport、Dispatch
    Anthropic が2026年3月と4月に出荷した4つの Claude Code 機能。これらは CLI を、スマホ・ウェブ・デスクトップをまたぐイベント駆動の調整レイヤーに変えます。
  • Claude Code 1M Context in Practice: When Bigger Isn't Better
    The 1M-token context window is GA at flat pricing, but bigger isn't always better. A decision framework, token-cost math, and when to use /compact, subagents, and dynamic workflows instead.
  • How to Build an Admin Dashboard With Claude Code
    Ship an internal admin panel with Claude Code: role-gated routes, a searchable users and orders table with pagination, impersonation-safe RLS, and metrics tiles pulled through a type-safe API.

More from Handbook

  • エージェントの基礎
    Claude Codeでスペシャリストエージェントを構築する5つの方法:タスクサブエージェント、.claude/agents YAML、カスタムスラッシュコマンド、CLAUDE.mdペルソナ、パースペクティブプロンプト。
  • エージェント・ハーネス・エンジニアリング
    ハーネスとは、AIエージェントを構成するモデル以外のすべての層のことです。5つの制御レバー、制約のパラドックス、そしてなぜハーネス設計がモデルよりもエージェントのパフォーマンスを左右するのかを学びましょう。
  • エージェントパターン
    オーケストレーター、ファンアウト、バリデーションチェーン、スペシャリストルーティング、プログレッシブリファインメント、ウォッチドッグ。Claude Code のサブエージェントを組み合わせる6つのオーケストレーション形状。
  • エージェントチームのベストプラクティス
    Claude Code エージェントチームの実証済みパターン。コンテキストが豊富なスポーンプロンプト、適切なサイズのタスク、ファイルオーナーシップ、デリゲートモード、v2.1.33〜v2.1.45 の修正内容。

設定をやめて、構築を始めよう。

AIオーケストレーション付きSaaSビルダーテンプレート。

企業向けに構築している実績を見る →

Claude Code レビュー

並列 Claude エージェントがすべての PR でバグを調査し、指摘事項を相互確認し、精度の高いコメントを一件投稿する。検出内容、コスト、有効化の方法。

Claude Codeリモートコントロール

スマートフォン、タブレット、ブラウザからローカルのClaude Codeターミナルセッションを操作する。セットアップ、セキュリティモデル、そしてリモートコントロールとOpenClawの比較。

On this page

Worktreesが変えること
CLI: --worktreeフラグ
名前付きworktree
自動命名worktree
複数の並行セッション
セッション途中でのworktree作成
デスクトップアプリ: 自動分離
サブエージェントのworktree分離
Claudeにエージェントを分離するよう依頼する
並行実行で重要な理由
分離を内蔵したカスタムエージェント
Git以外のバージョン管理システムのサポート
盗む価値のある3つのWorktreeパターン
1. フィーチャー作業を壊さずにホットフィックス
2. リスクのあるリファクタリングの競合実装
3. 分離されたサブエージェントによるバッチマイグレーション
Worktreeを健全に保つ小さなルール
クリーンアップとハウスキーピング
Worktreeを使うタイミング

設定をやめて、構築を始めよう。

AIオーケストレーション付きSaaSビルダーテンプレート。

企業向けに構築している実績を見る →