ひとことで言うと
Worktree分離(Worktree isolation)は、Claude Codeを普段の作業ディレクトリとは別の場所で動かすための仕組みです。Claude Codeが.claude/worktrees/以下に用意された別のgit worktreeの中で作業するので、あなたが今開いているファイルには手が触れません。
「別のブランチで、別のフォルダで作業する」と言われてもピンとこないかもしれないので、まずは例え話から。
キッチンの調理台に例えると
料理を2人で同時に作る場面を想像してください。調理台が1つしかないと、片方がまな板の上に置いた玉ねぎを、もう片方が「あ、これいらないやつだ」と片付けてしまう、みたいな事故が起きます。悪気はないのに、同じ場所を共有しているせいで邪魔し合ってしまう。
Worktree分離は、この状況で調理台をもう1台用意するようなものです。それぞれが自分の台の上だけで作業するので、隣が何を切っていようが関係ない。完成したものだけを最後に持ち寄ればいい。
Claude Codeで言えば「調理台」がディレクトリ、「作っている料理」がコード変更にあたります。
そもそもgitのworktreeとは
gitには「worktree」という機能があります。ざっくり言うと、同じリポジトリの中身を、別のブランチの状態で、別のフォルダにもう1セット展開する仕組みです。
普通、ブランチを切り替えるときはgit checkoutで今いるフォルダの中身が丸ごと入れ替わります。worktreeを使うと、入れ替える代わりに「隣に別のフォルダを作って、そこに別ブランチの状態を展開する」ことができます。リポジトリの履歴は共有したまま、作業場所だけが増えるイメージです。
Claude CodeのWorktree分離は、このgitの機能をそのまま利用しています。
何がうれしいのか
一番効いてくるのは、複数のClaude Codeやサブエージェントを同時に走らせるときです。
分離なしで2つのエージェントに別々のタスクを頼むと、両方が同じファイルを開いて、片方の書き込みがもう片方の変更を上書きする、といった衝突が起こり得ます。人間同士でも同じファイルを同時に編集すればぶつかるわけで、エージェントでも事情は同じです。
Worktree分離を有効にすると、それぞれのエージェントが自分専用のディレクトリと自分専用のブランチを持ちます。互いのファイルを踏まないので、並行して安心して動かせます。
もうひとつ地味に効くのが、自分の手元の作業が汚れないこと。「ちょっとこの実装を試してみて」とClaude Codeに頼んだ結果、書きかけだった自分のコードが巻き込まれる、という事態を避けられます。
有効にする方法
大きく2通りあります。
-wフラグで起動する
Claude Codeを起動するときに-wフラグを付けると、worktree分離モードで立ち上がります。
claude -w
これで、その回のセッションの作業は.claude/worktrees/以下の別ディレクトリ・別ブランチに閉じます。
サブエージェントの設定で指定する
サブエージェント(特定の役割を任せる子エージェント)の設定に、次のように書く方法もあります。
isolation: worktree
こうしておくと、そのサブエージェントが呼ばれるたびに自動的にworktreeの中で動きます。毎回フラグを付け忘れる心配がありません。
使うときに気をつけたいこと
分離されているということは、裏を返せば成果物が自分の手元にはないということです。Claude Codeが書いたコードは別のブランチ・別のディレクトリにあるので、それを自分のブランチに取り込む手順が別途必要になります。「動かしたのに変更が見当たらない」と焦る前に、どこに成果物ができているかを意識しておくといいでしょう。
また、依存パッケージのインストール先やビルド成果物など、ディレクトリごとに用意が必要なものは、新しいworktreeでは改めてセットアップが要る場合があります。
どんなときに使うか
一人で1つのタスクを順番に進めるだけなら、分離なしでも困りません。効果が出るのは、複数のタスクを並行で回したいときや、自分の作業を止めずにClaude Codeへ別件を頼みたいときです。
「エージェントを並列で動かしたいけど、ファイルの取り合いが怖い」——その不安に対する答えが、Worktree分離だと考えてください。
詳細は公式ドキュメント( https://code.claude.com/docs/ja/worktrees )も参照してみてください。
このページは役に立ちましたか?