◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-03-11中級

Claude Code ワークツリー活用ガイド — 安全な並行作業の実践テクニック

1つのリポジトリから複数の作業ディレクトリを展開するgit worktreeを、Claude Codeと組み合わせて安全に並行作業する方法です。ブランチ切替なしで複数タスクを進める基本的な使い方、実践シナリオ、ワークツリーの管理、注意点とベストプラクティスを解説します。

Claude Code265Git4Worktree並行開発ブランチ管理

ワークツリーとは

Git の worktree(ワークツリー)機能は、1つのリポジトリから複数の作業ディレクトリを同時に展開する仕組みです。Claude Code はこの機能をネイティブサポートしており、メインの作業を中断せずに別タスクを安全に進められます。

ℹ️
ワークツリーを使うと、ブランチの切替(`git checkout`)が不要になります。各ワークツリーが独立したディレクトリを持つため、未コミットの変更を stash する手間もありません。

基本的な使い方

Claude Code でワークツリーを起動

Claude Code のプロンプトで「ワークツリーで作業」と指示するだけで、自動的に新しいワークツリーが作成されます。

# Claude Code のプロンプトで
> このバグ修正をワークツリーで進めて
 
# Claude Code が自動的に実行する内容:
# 1. .claude/worktrees/ 配下に新しいワークツリーを作成
# 2. HEAD から新しいブランチを切る
# 3. そのディレクトリで作業を開始

手動でワークツリーを作成

Git コマンドで直接作成することも可能です。

# 新しいワークツリーを作成(新ブランチも同時に作成)
git worktree add ../my-feature -b feature/new-login
 
# 既存ブランチをワークツリーとして展開
git worktree add ../hotfix-dir hotfix/critical-bug
 
# ワークツリーの一覧を確認
git worktree list

実践シナリオ

シナリオ1: メイン作業中の緊急バグ修正

新機能の開発中に本番のバグ修正依頼が来た場合、ワークツリーなら作業を中断せずに対応できます。

現在の状態:
  main ブランチ → メインのワークツリー(新機能開発中)

緊急バグ修正:
  hotfix ブランチ → 別のワークツリーで修正

Claude Code での操作例:

# メインの作業ディレクトリはそのまま
> 本番のログインエラーをワークツリーで修正して。
> main ブランチから hotfix/login-error ブランチを切って対応して。

Claude Code は別ディレクトリでバグを修正し、PR を作成します。メインの作業ディレクトリには一切影響しません。

シナリオ2: 複数の PR を同時に作業

異なる機能を並行して開発する場合にも有効です。

# ワークツリー1: ユーザー認証の改善
git worktree add ../auth-improvement -b feature/auth-v2
 
# ワークツリー2: ダッシュボードの新機能
git worktree add ../dashboard-feature -b feature/dashboard
 
# ワークツリー3: パフォーマンス改善
git worktree add ../perf-tuning -b perf/optimize-queries

各ワークツリーは独立しているので、ビルドやテストも互いに干渉しません。

シナリオ3: スケジュールタスクとの並行作業

Cowork のスケジュールタスクがリポジトリに自動コミットする場合、手動作業と競合する可能性があります。ワークツリーを使えば安全に分離できます。

# メインのワークツリー: スケジュールタスクが main ブランチに自動コミット
# 手動のワークツリー: 別ブランチで UI 改善を進める
git worktree add ../ui-redesign -b feature/ui-redesign
 
# 作業完了後、main にマージ
git checkout main
git merge feature/ui-redesign
💡
スケジュールタスクが `main` に直接プッシュする構成の場合、手動作業は別ブランチで行い、完了後にマージするのがベストプラクティスです。プッシュ前には必ず `git pull --rebase origin main` を実行しましょう。

ワークツリーの管理

一覧の確認

git worktree list
# /home/user/myproject         abc1234 [main]
# /home/user/myproject-hotfix  def5678 [hotfix/login-error]
# /home/user/myproject-feature ghi9012 [feature/dashboard]

ワークツリーの削除

作業が完了したワークツリーは削除してディスク容量を節約します。

# ワークツリーを削除
git worktree remove ../myproject-hotfix
 
# 強制削除(未コミットの変更がある場合)
git worktree remove --force ../myproject-hotfix
 
# 削除済みワークツリーの参照をクリーンアップ
git worktree prune
⚠️
ワークツリーを削除しても、ブランチ自体は残ります。ブランチも不要な場合は `git branch -d ブランチ名` で別途削除してください。

Claude Code 終了時の自動クリーンアップ

Claude Code でワークツリーを使用した場合、セッション終了時に「ワークツリーを保持するか削除するか」の確認が表示されます。変更がない場合は自動的にクリーンアップされます。

注意点とベストプラクティス

同じブランチは同時に展開できない

1つのブランチは1つのワークツリーでしか使用できません。

# これはエラーになる
git worktree add ../second-main main
# fatal: 'main' is already checked out at '/home/user/myproject'

node_modules の扱い

各ワークツリーは独立したディレクトリなので、node_modules も個別にインストールが必要です。

cd ../my-feature
npm install  # ワークツリーごとに必要
ℹ️
ディスク容量が気になる場合は、pnpm のコンテンツアドレッサブルストレージを使うと、node_modules の重複を大幅に削減できます。

ワークツリー間でのファイル共有

.git ディレクトリは元のリポジトリと共有されるため、以下は全ワークツリーで共通です:

  • Git の設定(.git/config)
  • リモート設定
  • reflog
  • Git hooks

逆に、以下はワークツリーごとに独立しています:

  • 作業ファイル(ソースコード)
  • ステージングエリア(インデックス)
  • HEAD の参照先(チェックアウト中のブランチ)

Claude Code との組み合わせテクニック

Task ツールとワークツリー

Claude Code の Task ツールに isolation: "worktree" を指定すると、サブエージェントが自動的にワークツリー内で作業します。

Task ツールで isolation: "worktree" を指定
→ サブエージェントが独立したワークツリーで作業
→ 変更がある場合はブランチとパスが返される
→ メインの作業に影響なし

/worktree スラッシュコマンド

Claude Code では /worktree コマンドで対話的にワークツリーを管理できます。

> /worktree       # ワークツリー関連の操作メニュー

全体を振り返って

ワークツリーは、Claude Code での並行開発を安全かつ効率的にする強力な機能です。メインの作業を中断せずに緊急対応ができ、複数の PR を同時に進められます。スケジュールタスクとの競合を防ぐ手段としても有効です。ブランチ切替のストレスから解放され、よりスムーズな開発ワークフローを実現しましょう。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⟐ Claude Code2026-04-02
Claude Code を worktree ごとに走らせる並列開発の実装メモ
Git worktree でブランチを物理的に分け、Claude Code を作業場所ごとに起動するための実装メモ。共有されるもの・されないものを手元の Git で実測し、追跡外ファイルの扱いと畳み方まで書き残します。
⟐ Claude Code2026-10-15
日本語フォルダ名を守るはずのフックが、一度も止めてくれませんでした — Python の stdin が cp932 で読んでいた話
「経理」「議事録」などの日本語フォルダを守る PreToolUse フックが、Python の stdin 既定が cp932 の環境では素通りします。再現の手順と 3 行の直し方、確認用の 1 コマンドを書き残します。
⟐ Claude Code2026-10-14
onFailure を block にしても、jq が無い環境では公式例の rm -rf ブロックは素通りしました
PreToolUse の門番フックは、落ちたときに通すのか止めるのか。公式例を jq の無い環境で走らせると exit 0 で素通りしました。終了コード10通りの実測、直し方、settings.json を走査して素通りを洗い出すスクリプトをまとめます。