Skip to main content

GitHub Copilot CLI(コマンドラインインターフェース)操作の取り消しと変更のロールバック

アクティブな Copilot 操作を取り消すさまざまな方法と、結果が期待どおりでない場合にセッション中に行われた変更をロールバックする方法について説明します。

Introduction

対話型のCopilot CLI (コパイロット CLI) セッションで作業する場合は、Esc キーまたは Ctrl キー+キーを押して、Copilotの動作を制御できます。 どちらのキー押下も操作を取り消すことができますが、動作が若干異なります。

    •       <kbd>C</kbd> はすぐに現在の操作を停止します。
      
  • 1 つの Esc キー押下を使用すると、ダイアログを閉じる、キューに入ったプロンプトをクリアする、または段階的に操作を取り消すことができます。

            Copilotが既に変更を加え、元に戻す場合は、セッションの前のポイントにワークスペースをロールバックできます。 
            Copilot CLI (コパイロット CLI)は、プロンプトを入力するたびにワークスペースの状態のスナップショットを取得します。これにより、<kbd></kbd>がアイドル状態で入力領域が空のときに Copilot キーを 2 回押して、以前の状態に巻き戻すことができます。
    

Esc キーを押すとさまざまな状況で実行される内容

          <kbd>Esc</kbd> キーを 1 回押すと、セッションの現在の状態に応じて異なるアクションが実行されます。

| 現在の状態 | Esc キーを押した場合の動作 | | ------------- | ------------------------ | | Copilot はアクティブであり、キューに登録されたプロンプトはありません。 | 実行中の操作を取り消します。 | | Copilot はアクティブであり、キューに登録されたプロンプトがあります。 | 現在の操作を停止せずに、キューに入ったプロンプトをクリアします。 | | ダイアログ、オーバーレイ、またはピッカーが開いています。 | ダイアログ、オーバーレイ、またはピッカーを閉じます。 | | Copilot がアイドル状態です。 | Esc キーをもう一度押すと巻き戻しピッカーが開くという簡単なリマインダーが表示されます。 変更のロールバックを参照してください。 |

Ctrl + C の代わりに Esc キーを使用する場合

操作を取り消すこの 2 つの方法の主な違いは、 Esc は段階的で対象を絞った介入用に設計されていますが、 Ctrl+C はハード ストップです。

現在の操作を必ずしも終了せずにを操作する場合はCopilotを使用します。 たとえば、アクセス許可ダイアログが表示され、その特定の要求を拒否する場合、 Esc キーを押すとダイアログが閉じられ、 Copilot は動作し続けます。拒否したツールは使用されません。 同様に、フォローアップ プロンプトをキューに登録し、既に進行中の作業を中断せずにキャンセルする場合、 Esc は現在の操作の実行中にキューをクリアします。 Esc キーを押すと、開いているダイアログがなく、最初にクリアするキューに登録されたプロンプトがない場合にのみ、操作が完全に取り消されます。

すべてを一度に停止する場合は、 Ctrl+C キーを使用します。 アクティブな操作が直ちに取り消され、キューに入ったプロンプトが 1 つのキー押下でクリアされます。 既に進行中のファイルの書き込みは完了します。ファイルは書き込み中に破損したままにされませんが、残りの計画された変更は破棄されます。 + C キーを 2 秒以内に 2 回押すと、入力領域が空になると、セッションが完全に終了します。

経験則として、選択的に介入する場合は Esc 、停止してやり直す場合は Ctrl+C を使用します。

変更のロールバック

          Copilotが非アクティブで、入力領域にテキストがない場合は、<kbd>Esc</kbd> キーを 2 回押して、ロールバックできる現在のセッションのポイントの一覧を表示できます。 各ポイントは、一覧に表示されるプロンプトで作業を開始 Copilot 直前に作成されたワークスペースのスナップショットに対応します。

ダブル Esc キー押下を使用してセッション中に行われた変更をロールバックする方法の詳細については、 GitHub Copilot CLI(コマンドラインインターフェース) セッション中に行われた変更のロールバック を参照してください。

警告

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

ロールバックを行うと何が起こるか

巻き戻しピッカーからスナップショットを選択すると、次のアクションが発生します。

  1.        **Git 状態が復元されます。** リポジトリは、スナップショットに記録された Git のコミットおよびブランチに対してチェックアウトされます。
    
  2.        **追跡されていないファイルがクリーンアップされます。** スナップショットの時点に存在しなかったファイルは削除されます。
    
  3.        **変更されたファイルが復元されます。** スナップショットの後に変更されたファイルは、アクセス許可やステージング状態など、バックアップされた状態に戻されます。
    
  4.        **セッション履歴が切り捨てられます。** 選択したスナップショットが作成された時点まで会話が巻き戻されます。 その時点以降に発生したすべてのメッセージとツール呼び出しは、セッションから削除されます。
    
  5.        **スナップショットが削除されます。** 選択したスナップショットと、その後のすべてのスナップショットは完全に削除されます。 今後の巻き戻しに使用できるのは、以前の会話手順のスナップショットのみです。
    
  6.        **ロールバックが確認されました。** ロールバック後、 Copilot には、復元されたファイルの数を示すメッセージが表示されます。
    
  7.        **プロンプトが復元されます。** 選択したスナップショットに関連付けられているプロンプトが入力領域に配置されます。
    

ロールバックできない変更

次の状況では、巻き戻しは使用できません。

  • 10 MB を超えるファイル。 スナップショットの作成時に、10 MB を超える個々のファイルはスキップされます。 これらのファイルに対する変更は、ロールバック中は復元されません。
  • 500 を超える変更されたファイル。 CLI 会話の 1 つのステップで 500 を超えるファイルが変更された場合、そのステップのスナップショットは作成されません。 その手順で行った変更をロールバックすることはできません。 以前のスナップショットは影響を受けません。

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