Git Worktree の概要
Git worktree は、Git の標準機能である。1 つのリポジトリを共有しながら、複数の作業ディレクトリ(working tree)を別々のフォルダに作成可能である。これにより、異なるブランチを同時にチェックアウトし、並行作業を実現する。
Git Worktree の有用性
Git worktree の主な利点は以下の通りである。
- 複数のブランチを同時に扱える。従来の Git ではブランチ切り替え時に stash や一時コミットが必要だったが、worktree を使用すれば別ディレクトリで独立作業可能である。緊急バグ修正をメイン開発と並行で進められる。
- ビルドキャッシュや依存ファイル(例: node_modules)が維持されやすい。ブランチ切り替えによる環境破壊を回避する。
- リポジトリ共有によりディスク容量を節約する。すべての worktree が同一の .git を参照するため、fetch や gc を 1 回で済む。
- 並行開発の効率化に寄与する。プルリクエストレビューや複数フィーチャー開発に適する。
特に Claude Code(Anthropic の AI コーディングツール)と組み合わせると効果が大きい。Claude Code はタスクを自動実行するが、複数セッションを並列起動する場合に worktree が有効である。各 worktree で独立した Claude Code を起動し、コンテキスト干渉を防ぎながら並列処理を実現する。これにより開発速度が大幅に向上する。
「安全に隔離」の意味
worktree の核心は作業ディレクトリの完全隔離である。各 worktree は物理的に別フォルダに存在するため、一方の変更が他方に影響しない。これが「安全に隔離」の本質である。
- 例: メイン worktree でフィーチャー開発中、別 worktree で hotfix 作業した場合、hotfix の変更がメインのファイルを上書きしない。コンフリクトや誤操作を防止する。
- Git が内部ロックで管理するため、手動コピーより安全である。
- Claude Code との組み合わせでは、各 AI セッションが独立環境で動作する。他のセッションの作業を破壊せず、AI の出力変動を活用した並列タスク実行が可能である。メインブランチを汚さず、失敗しても隔離された環境で完結する。
注意点
- 同一ブランチを複数 worktree で同時チェックアウトできない(Git が防止する)。
- worktree 削除時は
git worktree removeを使用する。手動削除は管理破損のリスクがある。 - コマンドが増えるため、初心者には複雑に感じられる可能性がある。
基本的な使い方例
# 新規ブランチで worktree 作成 git worktree add ../project-feature -b feature/new-ui # 既存ブランチで作成 git worktree add ../project-hotfix hotfix/bug123 # リスト確認 git worktree list # 削除 git worktree remove ../project-hotfix
Git worktree は並行作業の多い開発者や、Claude Code を活用する者に強く推奨される。