気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Git Worktreeの有用性 AIツール作業環境を安全に隔離する

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 を活用する者に強く推奨される。

参照サイト