取り組みの背景
ソフトウェア開発では、複数の機能やバグ修正を同時に進めたい場面がよくあります。通常は、Git でブランチを切り替えて進める必要がありますが、切り替え時に依存関係の解決やビルドの再実行などが発生して時間がかかります。
Claude Code の Worktree 機能 を使うと、複数のブランチを同時に異なるディレクトリで開発できます。これにより、ブランチ間の切り替え時間を削減し、複数チーム間での並列開発が効率化されます。
Git Worktreeの基本概念
Worktreeとは
Git Worktree は、単一の Git リポジトリから複数のワークツリーを作成する機能です。各ワークツリーは独立したディレクトリで異なるブランチをチェックアウトできます。
従来の方法(ブランチ切り替え):
main ← チェックアウト → feature-A
↓(時間がかかる)
feature-B ← チェックアウト
Worktree を使った方法:
main/ ← ~/project-main
feature-A/ ← ~/project-feature-a (独立したディレクトリ)
feature-B/ ← ~/project-feature-b (独立したディレクトリ)
各ワークツリーは独立しているため、同時に複数ブランチで作業でき、ブランチ切り替えによる遅延がありません。
Worktreeの利点
- 並列開発: 複数ブランチを同時に進行可能
- 高速切り替え: ディレクトリ移動だけで済む(ブランチチェックアウト不要)
- リソース効率: 各ワークツリーは独立したnode_modules等を持てる
- CI/CD統合: 複数ブランチのビルド・テストを並列実行可能
Claude Code での Worktree 使用方法
Claude Code --worktree フラッグ
Claude Code CLI には --worktree フラッグがあり、指定したブランチの Worktree を自動生成できます。
claude code --worktree feature/auth-systemこのコマンドは以下を自動実行します:
- 現在のリポジトリから
feature/auth-systemブランチ用の Worktree を作成 - 新しいディレクトリで Claude Code セッションを起動
- that Worktree 内でコード編集・ファイル操作が実行される
基本的な使用例
例1: 新機能ブランチで開発
# main ブランチから feature/user-dashboard ブランチ用 Worktree を作成
claude code --worktree feature/user-dashboard例2: バグ修正ブランチでの並列作業
# hotfix/api-timeout 用 Worktree を作成
claude code --worktree hotfix/api-timeout
# 別のターミナルウィンドウで
claude code --worktree feature/pagination例3: Worktree の自動コミット
Claude が Worktree 内でコード変更を行った場合、--auto-commit フラッグで自動的にコミットさせることができます:
claude code --worktree feature/search --auto-commitWorktree の管理
既存 Worktree の確認
git worktree list出力例:
/home/dev/project abc1234 [main]
/home/dev/project-feature-auth def5678 [feature/auth-system]
/home/dev/project-feature-dash ghi9012 [feature/user-dashboard]
Worktree の削除
作業が完了したら、Worktree を削除します:
git worktree remove /home/dev/project-feature-authまたは
git worktree pruneIsolation Mode(分離モード)
Claude Code の Worktree には Isolation Mode があり、各ワークツリー間で環境を完全に分離できます。
Isolation Mode とは
Isolation Mode では、以下が各 Worktree に独立します:
node_modulesディレクトリ.envファイル- ビルド成果物(
dist/,build/など) - サーバープロセス(異なるポート番号で起動)
Isolation Mode の有効化
claude code --worktree feature/payments --isolation環境変数の分離例
# main ブランチの Worktree
cd ~/project
export API_KEY="prod-key-main"
export PORT=3000
# feature/payments の Worktree
cd ~/project-feature-payments
export API_KEY="dev-key-payments"
export PORT=3001 # 異なるポートこれにより、複数の開発環境を同時に稼働させることが可能です。
実践的なワークフロー例
ワークフロー1: 並列チーム開発
チーム A と チーム B が異なる機能を同時に開発する場合:
# チーム A: 認証機能の開発
claude code --worktree feature/auth-2fa
# チーム B: 決済機能の開発(別のターミナル)
claude code --worktree feature/payments-integration
# チーム C: バグ修正(さらに別のターミナル)
claude code --worktree hotfix/db-connection-leak各チームは独立したワークツリーで作業でき、コンフリクトなく進行できます。
ワークフロー2: 機能開発 + ドキュメント更新の並列実行
# メインワークツリー:機能開発(継続中)
cd ~/project
# 別ワークツリー:ドキュメント更新(並列実行)
claude code --worktree docs/update-api-reference --isolation
# さらに別ワークツリー:テスト記述
claude code --worktree tests/add-integration-testsワークフロー3: PR レビュー + 新機能開発
# PR レビュー中の修正(worktree-1)
cd ~/project-pr-review
claude code --worktree feature/pr-review-fixes
# 新機能開発は同時進行(worktree-2)
claude code --worktree feature/new-dashboardまとめ
Claude Code の Worktree 機能 は、並列開発を大幅に効率化します:
- 複数ブランチを同時に進行でき、ブランチ切り替え時間が削減される
--worktreeフラッグで簡単に Worktree セッションを起動- Isolation Mode で環境を完全に分離可能
- チーム開発やマルチプロジェクト管理に最適
特に、数人のチームで複数機能を同時に開発する環境では、生産性向上が見込めます。ぜひ試してみてください。