Claude Codeに本気で並列で仕事をさせたくなった時、たいていの人がたどり着くのがgit worktreeとの組み合わせです。複数のブランチでClaude Codeを並走させても、ファイル衝突に巻き込まれない作りができます。

この記事は、git worktreeの考え方とClaude Codeとの実用的な組み合わせを整理したものです。

なぜworktreeが要るのか

1つのリポジトリで複数のブランチを行き来する時、いちばん素直なのは git checkout でブランチを切り替える方法です。

ただ、Claude Codeを使い始めると、これでは足りない場面が出てきます。Aブランチで実装を走らせている最中に、Bブランチの調査もClaudeに頼みたい。同じフォルダで checkout で切り替えると、Aの作業が中断される。ターミナルだけ複数開いても、フォルダが同じだとClaudeが触るファイルが衝突します。

並列実行の選択肢全体は別記事に整理してあります。

worktreeは、この衝突問題を根本から解く道具です。

worktreeは「同じリポジトリの別フォルダ」

git worktreeは、1つのリポジトリを別の場所にも展開できる機能です。同じプロジェクトの分身を複数フォルダに持つ感覚、と考えると分かりやすい。

git worktree add ../myproject-feature feature-x

これで、../myproject-feature というフォルダに、feature-x ブランチがチェックアウトされた状態の作業空間ができます。元のフォルダはmainブランチのまま手つかず。Claudeが触る対象は、別フォルダの中身に閉じます。

新規追加なので、データのコピーは伴いません。.git本体は1つを共有しつつ、作業ファイルだけ別フォルダに展開する仕組みです。

Claude Codeをworktreeで並走させる

実際の動かし方は、ターミナルを2つ用意するだけです。

1番目のターミナルで、元のフォルダ(mainブランチ)に入り claude を起動。2番目のターミナルで、worktreeで作ったフォルダに cd して、そこでも claude を起動。それぞれが独立したセッションとして、別ブランチの作業空間に動きます。

ファイル衝突の心配がないので、長く回す実験ブランチと、本流の日常作業を、安心して並走できます。私はリファクタリング用のworktreeをよく作っていて、本流で記事を書きながら、別worktreeでメディア基盤の改修をClaudeに任せる、ということをしています。

ハマりやすいところ

経験から、注意点を3つ書いておきます。

ひとつめは、依存関係のインストール。worktreeを新しく作った直後は、node_modules が無い状態です。プロジェクトによっては npm installpnpm install を改めて走らせる必要があります。これを忘れると、Claudeが「モジュールが無い」と詰まります。

ふたつめは、CLAUDE.mdの取り扱い。基本的にCLAUDE.mdはGitに入っているので、worktreeでも同じ内容が読まれます。ただ、worktree固有の前提(「ここは実験ブランチなので破壊的変更OK」など)を伝えたい時は、worktree側だけCLAUDE.mdを足すか、.claude/settings.local.json のような共有しないファイルに足すと整理しやすい。

みっつめは、worktreeの後始末。役目を終えたworktreeは git worktree remove ../myproject-feature でちゃんと消す。残したままにすると、フォルダだけ残って気持ち悪い状態になります。

私のいまの運用

参考までに書きます。

長く回す改修や、別アプローチを試したい実験は、必ずworktreeで切ります。本流のフォルダはmainブランチのまま、別フォルダに改修用ブランチを展開して、そこでClaudeを動かす。

完成したらPRを出してマージ。マージ後にworktreeを git worktree remove で消す、というルーチンです。プラン作成と組み合わせると、改修の見通しも立てやすくなります。

worktreeが要らない人もいる

最後に、現実的な話を。

worktreeは強力ですが、毎日使う必要はありません。普段の作業が1ブランチで完結するなら、わざわざ覚えなくてもいい機能です。

「並列に走らせたい」「実験ブランチを長く回したい」「本流を止めずに改修したい」のどれかに当てはまった時、初めて出番が来る道具、と捉えるくらいでちょうどよいです。

まとめ

  • git worktreeは1つのリポジトリを別フォルダに展開できる機能
  • Claude Codeを別ブランチで並走させると、ファイル衝突が物理的に避けられる
  • 追加は git worktree add 、削除は git worktree remove
  • 注意点は依存関係の再インストール、CLAUDE.mdの扱い、後始末の3つ
  • 長く回す改修・実験ブランチ・本流を止めない並走に向く
  • 普段の1ブランチ運用で足りるなら、無理に覚えなくてよい応用機能