Skip to main content

回退 GitHub Copilot 命令行界面 (CLI) 会话期间所做的更改

将 Copilot 命令行界面(CLI) 会话倒退到以前的提示,以撤消会话历史记录中的更改,并选择性地还原文件。

介绍

在交互式 Copilot 命令行界面(CLI) 会话中工作时, Copilot 可以更改文件、运行 shell 命令和修改存储库。 如果结果不是你所期望的,可以返回到会话中的之前的某个点以撤销这些更改。

可以在空闲时Copilot按 Esc 两次,或使用/undo斜杠命令(或其别名/rewind)触发回退。

选择要回退到的点时,可以选择是 仅倒退对话 还是 倒退对话和还原文件

Rewind 在任何目录中工作,包括不是 Git 存储库的文件夹。 它仅还原已更改的文件 Copilot 。

本文介绍如何回滚更改。 有关在会话中倒退到早期点的更多概念性信息,请参阅 取消 GitHub Copilot 命令行界面 (CLI) 操作并回滚更改

先决条件

  • 回退点必须存在。 无法回退到会话中你的第一个提示之前。
  • 文件还原仅适用于跟踪文件更改的会话。 如果在启用文件更改跟踪之前恢复启动的会话,则仅提供对话回退。 启动一个新会话,以便能够还原文件更改。
  • 文件还原会跳过自己更改的文件。 当前内容不再与上次写入的内容 Copilot 匹配的文件(例如,因为之后编辑了它们),并且文件太大而无法备份,则不会被覆盖。
  • Rewind 不适用于远程支持的会话,或者会话仍在进行中。

双击 Esc 键回退

警告

  • 回退无法撤销。 一旦回滚,之后的会话历史记录将被永久删除。
  • 如果选择还原文件, Copilot 则仅还原它更改的文件,并跳过其当前内容不再与上次写入的内容匹配的任何文件,因此不会覆盖你自己的以后的编辑。

Esc 两次只会在空闲时 Copilot 打开回退选取器。 有关操作正在进行时双 Esc 执行的操作的详细信息,请参阅 取消 GitHub Copilot 命令行界面 (CLI) 操作并回滚更改

Copilot完成响应您输入的提示后:

  1. 确保输入区域为空,并且没有正在进行的工作。 如果输入区域中有文本,则快速连续按 Esc 两次会清除文本,而不是打开选取器。

  2. 连续两次按 Esc 打开回退选取器。

    选取器列出了当前会话的可用回退点,其中最先列出最近一个。 同时显示最近的十个点。 如果有 10 个以上的键,请使用 “ 和” 箭头 键滚动它们。 对于每个回退点,将显示你输入的提示的开始时间以及你提交的时间。 对于已更改文件的轮次,也会显示该轮次添加和删除的行数。

  3. 选择倒退点,然后按 Enter

    选择回退点将打开一个操作菜单,可在其中选择 “仅对话 ”或“ 对话 +”文件。 当该轮次和任何以后轮次都未更改任何可还原的文件时,后者将不可用。 在还原之前, Copilot 显示更改的按文件预览,以便可以确认。

    注意

    回退将相对于状态应用, 然后Copilot 立即开始处理提示,而不是在处理提示后立即应用。

    所选的提示将显示在输入区域中,以便根据需要编辑并重新提交它。

使用 /undo 斜杠命令回退

/undo斜杠命令及其别名/rewind提供了打开回退选取器的另一种方法。

两个命令产生的结果与在 空闲且输入区域中没有文本时按两次 Copilot 相同。

验证回滚

回滚后,可以使用 Git 命令来验证存储库的状态,并确认它是否符合预期。

通过键入 ! ,可以直接从 Copilot 命令行界面(CLI) 输入提示运行 shell 命令,因此无需退出 CLI 即可检查存储库状态。

要执行的操作输入此命令
检查哪些文件显示为已修改、暂存或未跟踪。! git status
显示当前提交的 SHA 和提交消息。! git log --oneline -1
查看未暂存的更改。! git diff

延伸阅读