Claude CodeがCLIでgit worktreeをネイティブサポート——並列エージェント開発が変わる
Claude Code公式アカウントより:「Introducing: built-in git worktree support for Claude Code — Now, agents can run in parallel without interfering with one other. Each agent gets its own worktree and can work independently.」
この発表、何がすごいのか
Claude Code(AnthropicのAIコーディングエージェント)が、CLIでgit worktreeをネイティブサポートするようになりました。
これまでDesktopアプリでは対応済みだったこの機能が、いよいよCLIにも展開されました。
一言で言うと、複数のAIエージェントが互いに干渉せず、同じリポジトリで同時並行作業できるようになったということです。
そもそもgit worktreeとは
git worktree は、1つのリポジトリに複数の作業ディレクトリを紐づけるGit機能です。
通常のGit操作ではブランチを切り替えるたびに作業ディレクトリの状態が変わりますが、worktreeを使うと複数のブランチを別々のディレクトリで同時に開いておけるようになります。
# hotfixブランチを ../hotfix ディレクトリに展開
git worktree add -b hotfix ../hotfix main
# feature開発用をさらに別ディレクトリに展開
git worktree add -b feature/api ../feature-api
この状態で ../hotfix と ../feature-api は独立した作業領域として機能します。.git オブジェクト(コミット履歴など)は共有されるため、ディスクの無駄もありません。
なぜAIエージェントにworktreeが必要なのか
従来のClaude Codeで複数タスクを並列実行しようとすると、次の問題がありました。
エージェントが同じ作業ディレクトリを共有してしまう
エージェントA: feature/auth ブランチで作業中
エージェントB: feature/payment ブランチに切り替えようとする
→ 互いのファイル変更が衝突・上書き!
worktreeサポートにより、各エージェントが専用の独立した作業ディレクトリを持てるようになりました。
エージェントA → /project-auth/ (feature/auth ブランチ)
エージェントB → /project-payment/ (feature/payment ブランチ)
エージェントC → /project-fix/ (hotfix ブランチ)
→ 3つが完全に独立して、同時並行で動く
何が変わるのか:具体的なシナリオ
① 大規模リファクタリングの分割並列実行
たとえば「認証モジュール」「決済モジュール」「通知モジュール」を同時にリファクタリングしたいとき、これまでは順番に実行するしかありませんでした。
worktreeサポートにより、3つのエージェントがそれぞれ独立したブランチ・ディレクトリで同時に作業できます。
② バグ修正と機能開発の同時進行
メインエージェント : feature/new-ui ブランチで新機能開発中
サブエージェント : hotfix/critical-bug ブランチで緊急バグ修正中
従来なら「新機能開発を一時中断してstash→ブランチ切り替え→修正→また戻す」という手間が必要でした。worktreeなら両方を止めずに同時進行できます。
③ テスト実行と開発の分離
エージェントA → /dev/ ディレクトリで次のコミットを実装中
エージェントB → /test/ ディレクトリで現在のコードのテストを走らせ中
テスト待ち時間をゼロに近づけることができます。
worktreeの基本的な使い方(復習)
作成
# 新ブランチを作りながらworktreeを追加
git worktree add -b feature/xxx ../feature-xxx
# 既存ブランチをworktreeとして展開
git worktree add ../hotfix hotfix
# detached HEAD(使い捨て検証用)
git worktree add -d ../sandbox
確認
git worktree list
# /path/to/main abc1234 [main]
# /path/to/feature-xxx def5678 [feature/xxx]
# /path/to/hotfix 111aaaa [hotfix]
削除
git worktree remove ../feature-xxx
内部構造:なぜ安全に並列動作できるのか
worktreeの安全性のカギは、共有されるものとされないものの分離にあります。
| 項目 | 共有 |
|---|---|
| コミット履歴・オブジェクト | ✅ 全worktreeで共有 |
refs/heads/(ブランチ) |
✅ 全worktreeで共有 |
HEAD |
❌ 各worktree独自 |
| インデックス(ステージング) | ❌ 各worktree独自 |
| 作業ディレクトリのファイル | ❌ 各worktree独自 |
各エージェントが持つworktreeは独自のHEADとインデックスを持つため、互いの作業内容が干渉しません。それでいてコミット履歴は共有されているので、後からブランチをマージするのも通常どおりです。
まとめ
| 項目 | 変更前 | 変更後 |
|---|---|---|
| 並列エージェント実行 | 干渉リスクあり | 完全独立 |
| ブランチ切り替え | 都度必要 | 不要 |
| Desktop / CLI | Desktopのみ対応 | 両方対応 |
Claude CodeのCLIへのworktreeネイティブ対応は、AIエージェントによる開発の並列化・高速化に向けた重要なアップデートです。
複数のAIエージェントを同時に走らせるワークフローを組む際には、このworktree機能が基盤となってくるはずです。タスクを細かく分割してエージェントに並列実行させるアーキテクチャが、今後のAI活用開発のスタンダードになっていくかもしれません。