Claude Codeには /fork というスラッシュコマンドがあります。今のセッションの会話をそのまま複製して、新しいセッションとして分岐させる機能です。「今の流れは残しつつ、ここから別の方向を試してみたい」というときに使う人が多いと思います。
v2.1.221では、この /fork の挙動が変わりました。これまでは /fork して新しいセッションを作っても、実際にファイルを触る場所(作業ディレクトリ)は元のセッションと同じでした。つまり会話は分かれても、コードの作業場所は共有したままだったわけです。
今回のアップデートで、/fork したセッションはそれぞれ専用の新しい worktree(Gitの作業ツリー)上で動くようになりました。会話だけでなく、コードを触る場所そのものも分離されるということです。
何が困っていたのか
例えば、あるバグ修正の途中で「別のアプローチも試してみたい」と思って /fork したとします。これまでの挙動だと、フォーク後のセッションで元のセッションと同じファイルを編集してしまうと、両方のセッションが同じファイルを取り合うことになります。片方で編集した内容がもう片方の作業と衝突したり、意図せず上書きしてしまったりする可能性がありました。
会話としては「別の枝」のつもりでも、実際の作業場所は「同じ部屋」を共有していたイメージです。これでは安心して並行作業ができません。
何が変わったのか
今回の変更で、/fork するたびに新しい worktree が用意されるようになりました。それぞれのセッションが自分専用の作業スペースを持つので、片方のセッションでファイルを編集しても、もう片方の作業に影響しません。
これは既存の Worktree分離 の仕組みを、フォーク時にも適用したようなイメージです。もともとWorktree分離は並行してエージェントを動かすときのファイル衝突を防ぐための仕組みでしたが、/fork によって作られたセッション同士でも同じ考え方が使われるようになったということです。
どんな時に嬉しいか
例えば「今の実装方針で進めつつ、念のため別の実装案も試してみたい」というとき。これまでは片方を進めながらもう片方を試すと作業ファイルが競合するリスクがありましたが、これからは /fork するだけでそれぞれ独立した作業場所が用意されるので、安心して両方を並行して進められます。
会話のフォークと作業場所のフォークが一致した、という理解で問題ありません。「会話を分ける」という操作の意味が、より直感的になったアップデートだと言えます。
このページは役に立ちましたか?