Introduction
対話型 Copilot CLI (コパイロット CLI) セッションで作業する場合、 Copilot はファイルの変更、シェル コマンドの実行、リポジトリの変更を行うことができます。 結果が期待どおりでない場合は、セッションの前のポイントに巻き戻して、それらの変更を元に戻すことができます。
プロンプトを入力すると、 Copilot CLI (コパイロット CLI) 最初に行うことは、ワークスペースの状態のスナップショットを取得することです。 このスナップショットを使用すると、必要に応じてセッション内のそのポイントにロールバックできます。
Esc キーを 2 回押すか、/undoスラッシュ コマンドを使用して、巻き戻しをトリガーできます。
この記事では、変更をロールバックする方法について説明します。 セッションの以前のポイントへの巻き戻しの概念の詳細については、「 GitHub Copilot CLI(コマンドラインインターフェース)操作の取り消しと変更のロールバック」を参照してください。
前提条件
- 少なくとも 1 つのコミットを使用して Git リポジトリで作業している必要があります。 Copilot CLI (コパイロット CLI) では、Git 操作を使用してワークスペースの状態を追跡および復元します。
- スナップショットが存在する必要があります。 スナップショットは、CLI セッション内の Copilot との各対話の開始時に自動的に作成されます。 セッションで最初のプロンプトの前に行われた変更や、スナップショットの作成がスキップされたステップのリポジトリの状態に対して行われた変更をロールバックすることはできません。 ロールバックできない変更を参照してください。
ダブル Esc キーを押してロールバックする
警告
- 巻き戻しを行うと、ワークスペース全体が選択したスナップショットにあった状態に復元されます。 これにより、その時点以降に行われたすべての変更 ( Copilotによる変更だけでなく、手動による編集やシェル コマンドによる変更もすべて元に戻します。 スナップショットの作成後にワークスペースで作成された新しいファイルは、Git の状態に関係なく削除されます。
- 巻き戻しを取り消すことはできません。 スナップショットにロールバックすると、その時点以降のすべてのスナップショットとセッション履歴が完全に削除されます。
入力 Copilot プロンプトへの応答が完了したら、次のように入力します。
-
入力領域が空であることを確認します。 入力領域にテキストがある場合、 Esc キーを 2 回連続して押すと、テキストがクリアされます。
-
<kbd>Esc</kbd> キーを 2 回連続して押すと、巻き戻しピッカーが開きます。巻き戻しピッカーには、現在のセッションで使用可能なスナップショットが一覧表示され、最新のスナップショットが最初に表示されます。 最新の 10 個のスナップショットが表示されます。 使用可能なスナップショットが 10 個を超える場合は、 ↓ 方向キーを使用して、以前のスナップショットを下にスクロールできます。
スナップショットごとに、入力したプロンプトの先頭が表示され、送信した時間が示されます。
-
ロールバックするスナップショットを選択してください。 関連付けられたプロンプトを入力すると、リポジトリの状態に戻ります。
メモ
リポジトリは、プロンプトの操作が完了した直後ではなく、プロンプトでの作業を開始 Copilot 直前に状態にロールバックされます。
選択したプロンプトが入力領域に表示されるので、必要に応じて編集して再送信できます。
`/undo`スラッシュ コマンドを使用してロールバックする
`/undo`スラッシュ コマンドとそのエイリアス `/rewind`は、巻き戻しピッカーを開く別の方法を提供します。
どちらのコマンドも、がアイドル状態で、入力領域にテキストがない場合に Copilot キーを 2 回押すと得られるのと同じ結果になります。
ロールバックの検証
ロールバック後、Git コマンドを使用してリポジトリの状態を確認し、それが期待値と一致することを確認できます。
`!`入力すると、Copilot CLI (コパイロット CLI)入力プロンプトからシェル コマンドを直接実行できるため、リポジトリの状態を確認するために CLI を終了する必要はありません。
| 目的 | このコマンドを入力します |
|---|---|
| 変更済み、ステージング済み、または追跡解除済みとして表示されるファイルを確認します。 | ! git status |
| 現在のコミットの SHA メッセージとコミット メッセージを表示します。 | ! git log --oneline -1 |
| ステージされていない変更をレビューします。 | ! git diff |