はじめに
Claude Code、GitHub Copilot、Cursor など、様々な AI ツールが同時に複数のタスクを並行して処理することを可能にしました。しかし、従来の Git ワークフローでは、ブランチ間の切り替えによる作業の中断や、複数のタスクを同時進行する際のコンフリクトが課題となっています。
そこで注目されているのがGit Worktreeです。この記事では、Git Worktree の基本概念と使い方を紹介します。
従来の Git ワークフローの課題
ブランチ切り替えの問題点
従来の Git ワークフローでは、異なる機能やバグ修正を行う際にgit checkout
やgit switch
でブランチを切り替える必要がありました:
git add .
git commit -m "WIP: 機能Aの途中"
git switch main
git checkout -b hotfix/urgent-bug
git switch feature/feature-a
しかし、このアプローチには課題があります:
- 作業の中断: 緊急タスクが発生した際、進行中の作業を一時的にコミットするか stash で退避する必要がある
- 環境再構築のオーバーヘッド: ブランチを切り替えるたびに依存関係のインストールやビルドが必要になることが多い
- AI エージェントと相性が悪い: Claude Code や GitHub Copilot などの AI エージェントが長時間のタスクを実行中に、ブランチ切り替えによってコンテキストが失われてしまう
AI エージェント時代のワークフロー
現代の開発環境では:
- 複数の AI エージェントが同時に作業することが一般的
- 長時間実行されるタスク(大規模なリファクタリング、テスト生成など)が増加
- 並列処理による効率化が開発速度の鍵となる
これらのワークフローに対応するため、Git Worktree が注目されています。
Git Worktree とは
基本概念
Git Worktree は、同一リポジトリの複数のブランチを異なるディレクトリで同時にチェックアウトできる機能です。
/project-main (main branch)
/project-feature-a (feature-a branch)
/project-hotfix (hotfix branch)
引用: GitKraken
Claude Code でも言及されている
Anthropic の Claude Code ドキュメントでは、Git Worktree を使用した並列セッションが推奨されています。
- 完全な分離: 各 Claude Code インスタンスが独立したファイル状態を持つ
- 干渉の防止: 複数の Claude Code セッションが互いに影響しない
- 効率的な並列処理: 長時間タスクを実行しながら他の作業を継続
使用例
git worktree add ../project-claude-task1 -b claude/task1
git worktree add ../project-claude-task2 -b claude/task2
cd ../project-claude-task1
claude
cd ../project-claude-task2
claude
おすすめの VSCode 拡張: Git Worktree Manager
Git Worktree Managerは、VSCode で Git Worktree を直感的に管理できる拡張機能です。
主な特徴:
- 直感的な UI: グラフィカルインターフェースで worktree を管理
- 簡単な worktree の切り替え: ワンクリックで worktree 間を移動
- ブランチ状態表示: 各 worktree の Git 状態を一覧で確認
主要機能
1. Worktree の作成
git worktree add ../project-feature-a -b feature-a
2. ブランチ切り替え
Worktree 間の移動もワンクリックで行えるので便利です。
まとめ
Git Worktree は、AI エージェント時代の並列開発において欠かせない技術になっていくと思います。従来の方法ではシングルタスクに半ば強制されていましたが、Git Worktree を使うことでマルチタスクでの実装が進められます。
Views: 2