Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

取消 GitHub Copilot 命令行界面 (CLI) 操作并回滚更改

了解如何取消活动Copilot 操作的各种方法,以及如何在会话期间撤销所做的更改,如果结果不如预期。

Introduction

在交互式 Copilot 命令行界面(CLI) 会话中工作时,可以按 EscCtrl+C 来控制 Copilot 正在执行的操作。 两个键压都可以取消操作,但它们的工作方式略有不同:

  • Ctrl+C 立即停止当前操作。
  • 单个 Esc 按键可让你逐步地控制——允许你关闭对话框、清除排队的提示或分步骤取消操作。

如果 Copilot 已做出更改并想要撤消这些更改,则可以将工作区回滚到本次会话的早期状态。 Copilot 命令行界面(CLI) 在 Copilot 空闲且输入区域为空的情况下,每次输入提示时都会拍摄工作区状态的快照,这样您可以通过按两次 Esc 来恢复到较早状态。

按 Esc 在不同情况下执行的操作

Esc 一次会执行不同的操作,具体取决于会话的当前状态:

当前状态Esc 执行的操作
Copilot 在没有排队提示的情况下处于活动状态。取消正在运行的操作。
Copilot 处于活动状态,并且存在排队的提示。清除排队的提示,而不停止当前操作。
对话框、覆盖层或选择器已打开。关闭对话框、覆盖或选取器。
Copilot 处于空闲状态。显示一个简短的提醒,即再次按 Esc 会快速打开回退选取器。 请参阅 回滚更改

何时使用 Esc 而不是 Ctrl+C

取消操作的这两种方法的主要区别在于 Esc 旨在逐步、有针对性的干预,而 Ctrl+C 是一个硬停止。

在希望与 Copilot 交互而不一定结束当前操作时,请使用 Esc。 例如,如果出现权限对话框并想要拒绝此请求,按 Esc 键将关闭对话框,并继续 Copilot 工作,只是不会使用你拒绝的工具。 同样,如果已将后续提示排入队列,并且想要取消它们,而不会中断正在进行的工作, Esc 会清除队列,而当前操作继续运行。 如果没有打开任何对话框且没有需要清除的排队提示,按 Esc 只会直接取消操作。

如果要一次性停止所有内容,请使用 Ctrl+C 。 它会立即取消正在进行的操作,并通过单键按压清除任何排队的命令。 正在进行的任何文件写入都将完成(文件未在写入中损坏),但将放弃所有剩余的计划更改。 在输入区域为空的情况下,在两秒内再次按下 Ctrl+C 键,将完全退出会话。

作为经验法则,当您想要有选择地进行干预时,请使用 Esc;当您想要停止并重新开始时,请使用 Ctrl+C

回滚更改

当 Copilot 处于非活动状态且输入区域中没有文本时,可以按 Esc 两次以显示当前会话中可回滚到的点列表。 在 Copilot 开始处理列表中所示的提示符之前,每个点对应于立即拍摄的工作区快照。

请参阅 在 GitHub Copilot 命令行界面 (CLI) 会话期间回滚更改,了解如何按两次 Esc 键以在会话期间回滚更改的具体信息。

警告

倒退会将整个工作区还原到所选快照中的状态。 这将还原在该点之后所做的所有更改——不仅包括由Copilot所做的更改,还包括任何手动编辑以及由 shell 命令导致的更改。 删除快照后在工作区中创建的任何新文件,而不考虑其 Git 状态。

回滚时会发生什么情况

从回退选取器中选择快照时,将执行以下操作:

  1.        **Git 状态已还原。** 存储库被签出至快照中所记录的 Git 提交和分支。
    
  2.        **清除未跟踪的文件。** 删除快照时不存在的文件。
    
  3.        **已修改的文件已还原。** 快照后更改的文件将还原到其备份状态,包括权限和暂存状态。
    
  4.        **会话历史记录将被截断。** 对话将倒回到拍摄所选快照的时刻。 从会话中删除在该点之后发生的所有消息和工具调用。
    
  5.        **删除快照。** 所选快照及其后的所有快照将被永久删除。 只有之前对话步骤中的快照仍可用于将来的回放。
    
  6.        **已确认回滚。** 回滚后, Copilot 显示一条消息,指示还原了多少个文件。
    
  7.        **提示已还原。** 与所选快照关联的提示放置在输入区域中。
    

无法回滚的更改

在以下情况下,Rewind 不可用:

  • 文件超过 10 MB。 创建快照期间会跳过大于 10 MB 的单个文件。 回滚期间不会还原对这些文件的更改。
  • 超过 500 个已更改的文件。 如果在 CLI 会话的单个步骤中更改了 500 多个文件,则不会为该步骤创建快照。 你将无法回滚在该步骤中所做的更改。 早期快照不受影响。

延伸阅读