Skip to main content

GitHub Copilot CLI(コマンドラインインターフェース) セッション中に行われた変更のロールバック

Copilot CLI (コパイロット CLI) セッションを前のプロンプトに巻き戻して、会話履歴の変更を元に戻し、必要に応じてファイルを復元します。

イントロダクション

対話型 Copilot CLI (コパイロット CLI) セッションで作業する場合、 Copilot はファイルの変更、シェル コマンドの実行、リポジトリの変更を行うことができます。 結果が期待どおりでない場合は、セッションの前のポイントに巻き戻して、それらの変更を元に戻すことができます。

Esc キーを 2 回押すか、/undoスラッシュ コマンド (またはそのエイリアス /rewind) を使用して、巻き戻しをトリガーできます。

Copilot CLI (コパイロット CLI) では、次の 2 つの巻き戻し動作がサポートされています。

  • Git ベースの巻き戻し: プロンプトの開始時に作成されたワークスペース スナップショットにロールバックします。
  • ツールベースの巻き戻し: 会話履歴のみを巻き戻したり、会話履歴を巻き戻したり、変更 Copilot ファイルを復元したりできます。

メモ

ツール ベースの巻き戻しは現在試験段階の機能であり、 /experimental on スラッシュ コマンドまたは --experimental コマンド ライン オプションを使用した場合にのみ使用できます。

Copilot CLI (コパイロット CLI) は、環境に基づいてこれらの巻き戻し動作のいずれかを自動的に選択して、可能な限り最高の巻き戻しエクスペリエンスを提供します。

どの巻き戻し動作がアクティブであるかを確認するには:

  • ピッカーにスナップショットがすぐに表示され、スナップショットを選択するとロールバックが実行される場合は、 Git ベースの巻き戻しを使用します。
  • 巻き戻しポイントを選択すると、 会話のみ会話 + ファイルを含むアクション メニューが開く場合は、 ツールベースの巻き戻しを使用しています。

この記事では、変更をロールバックする方法について説明します。 セッションの以前のポイントへの巻き戻しの概念の詳細については、「 GitHub Copilot CLI(コマンドラインインターフェース)操作の取り消しと変更のロールバック」を参照してください。

前提条件

  • 巻き戻しポイントが存在する必要があります。 セッションで最初のプロンプトの前にロールバックすることはできません。
  • Git ベースの巻き戻しの場合のみ: 少なくとも 1 つのコミットを含む Git リポジトリに存在する必要があります。
  • ツールベースの巻き戻しの場合: 最後に触れた後に変更されたファイル Copilot ファイルの復元をスキップできます。

ダブル Esc キーを押してロールバックする

警告

  • 巻き戻しを取り消すことはできません。 ロールバックすると、後のセッション履歴は完全に削除されます。

Git ベースの巻き戻しでは、ロールバックすると、ワークスペース全体が選択したスナップショットにあった状態に復元されます。 これにより、 Copilotによって行われた変更だけでなく、シェル コマンドによる手動による編集や変更も、その時点以降に行われたすべての変更が元に戻されます。 スナップショットの作成後にワークスペースで作成された新しいファイルは、Git の状態に関係なく削除されます。

* ツール ベースの巻き戻しでは、ファイルを復元するかどうかを選択できます。 ファイルの復元を選択した場合、 Copilot 後に変更されたファイルは変更されず、新しい編集が上書きされないようにすることができます。

Copilot が、入力したプロンプトへの応答を完了したら:

  1. 入力領域が空であることを確認します。 入力領域にテキストがある場合、 Esc キーを 2 回連続して押すと、テキストがクリアされます。

  2. Esc キーを 2 回連続して押すと、巻き戻しピッカーが開きます。

    ピッカーには、現在のセッションで利用可能な巻き戻しポイントが新しいものから順に一覧表示されます。 最新の 10 個のポイントが一度に表示されます。 10 を超える場合は、 方向キーを使用して、前のポイントを下にスクロールします。 各巻き戻しポイントに対して、入力したプロンプトの先頭が表示され、送信した時間が示されます。

  3. 巻き戻しポイントを選択します。

    • Git ベースの巻き戻しでは、スナップショットを選択すると、そのプロンプトの開始時の状態にワークスペースが復元されます。
    • ツール ベースの巻き戻しでは、巻き戻しポイントを選択した後、次の操作を選択できます。
      • 会話のみ(履歴を巻き戻し、ファイルは変更されません)、または

      • 会話 + ファイル (履歴が巻き戻され、 Copilot によって変更された復元可能なファイルが復元されます)。

    メモ

    Git ベースの巻き戻しでは、リポジトリは、プロンプトの操作が完了した直後ではなく、プロンプトでの作業を開始 Copilot 直前に、その状態にロールバックされます。

    選択したプロンプトが入力領域に表示されるので、必要に応じて編集して再送信できます。

/undoスラッシュ コマンドを使用してロールバックする

/undoスラッシュ コマンドとそのエイリアス /rewindは、巻き戻しピッカーを開く別の方法を提供します。

どちらのコマンドも、がアイドル状態で、入力領域にテキストがない場合に Copilot キーを 2 回押すと得られるのと同じ結果になります。

ロールバックの検証

ロールバック後、Git コマンドを使用してリポジトリの状態を確認し、それが期待値と一致することを確認できます。

!入力すると、Copilot CLI (コパイロット CLI)入力プロンプトからシェル コマンドを直接実行できるため、リポジトリの状態を確認するために CLI を終了する必要はありません。

目的このコマンドを入力します
変更済み、ステージング済み、または追跡解除済みとして表示されるファイルを確認します。! git status
現在のコミットの SHA メッセージとコミット メッセージを表示します。! git log --oneline -1
ステージされていない変更をレビューします。! git diff

詳細については、次を参照してください。