VSCode 標準のフォーク機能(/fork)で Copilot Chat の会話を分岐する
製造ビジネステクノロジー部の小林です。
GitHub Copilot Chat を使っていて、「この文脈は残したまま、別のアプローチも試したい」と思うことはないでしょうか。VSCode にはチャットセッションをフォークする標準機能があります。
本記事では、Copilot Chat の fork 機能を解説します。
VSCode 標準のチャットフォーク機能とは?
VSCode には、GitHub Copilot Chat の会話を途中の地点から分岐できる標準機能があります。元の会話を残したまま、新しい独立セッションとして別の方向へ会話を続けられます。
厳密には、これは GitHub Copilot 単体の独立機能というより、VSCode が提供するチャットセッション管理機能の一部として利用できる機能です。
何ができるのか?
進行中の Copilot Chat セッションを、任意の地点から分岐できます。元のスレッドはそのまま残り、分岐先では会話履歴を引き継いだ状態で別の会話を続けられます。
VS Code の公式ドキュメントでは、フォーク方法は 2 つ用意されています。
- セッション全体をフォークする
- 特定のチェックポイントからフォークする
元のセッションと分岐先のセッションは独立しているため、片方の会話を進めても、もう片方には影響しません。
操作手順
方法 1: セッション全体をフォークする
Copilot Chat を開き、チャット入力欄で /fork を実行する

これだけで、現在の会話履歴を引き継いだ新しいセッションが作成されます。

方法 2: 途中のメッセージ地点からフォークする
Copilot Chat を開き、分岐したいメッセージの Fork ボタンをクリックする

これで、その地点までの会話履歴だけを引き継いだ新しいセッションが作成されます。

具体的なイメージ
元の会話:「こんばんは」
├── メッセージ1: 調子はどう?
│ ├── メッセージ2: ゴールデンウィークですね。
│ │ └── メッセージ3: 予定を考えて
│ │
│ └── 🔀 Fork: ← ★ここから分岐!
│ └── 別のアプローチで続行...
│
何が嬉しいのか
長い会話の文脈を保ちながら別アプローチを試せる
リファクタリングの相談を 10 往復続けて、ようやく Copilot が問題を把握した状態。そこで「もう一つ全然違うアプローチも試してみたい」となったとき、これまでは新しいチャットを開いてコンテキストを一から説明し直す必要がありました。
fork 機能を使えば、その 10 往復分の文脈を保ったまま別の会話を始められます。
プロンプトの A/B テストができる
同じ起点から異なるプロンプトを投げて、結果を比較できます。
例えば、あるコンポーネントの実装方針について:
- Fork A:「TypeScript の型安全性を優先して実装して」
- Fork B:「パフォーマンスを最優先にして実装して」
コンテキストが同一なので、純粋にプロンプトの違いだけで結果を比較できます。どちらの指示がより良い出力を引き出すか、手軽に検証できるのは大きなメリットです。
メインスレッドの文脈を守れる
長期間かけて育てたコンテキストのあるチャットスレッドは、一種の「作業記憶」です。そこに「ちょっとした確認」を投げると、LLM の注意がその方向に引っ張られ、それ以降の応答品質が変わってしまうことがあります。
fork 機能を使えば、サブの質問は別スレッドに切り出せるため、メインスレッドの文脈を汚しません。
補足
Copilot CLI(ターミナル上の Copilot Chat)で /fork コマンドを試してみましたが、現時点では実行できませんでした。この機能は VSCode の Chat UI 向けであり、CLI 環境にはまだ対応していないようです。






