介绍
在交互式 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完成响应您输入的提示后:
-
确保输入区域为空,并且没有正在进行的工作。 如果输入区域中有文本,则快速连续按 Esc 两次会清除文本,而不是打开选取器。
-
连续两次按 Esc 打开回退选取器。
选取器列出了当前会话的可用回退点,其中最先列出最近一个。 同时显示最近的十个点。 如果有 10 个以上的键,请使用 “ 和” 箭头 键滚动它们。 对于每个回退点,将显示你输入的提示的开始时间以及你提交的时间。 对于已更改文件的轮次,也会显示该轮次添加和删除的行数。
-
选择倒退点,然后按 Enter。
选择回退点将打开一个操作菜单,可在其中选择 “仅对话 ”或“ 对话 +”文件。 当该轮次和任何以后轮次都未更改任何可还原的文件时,后者将不可用。 在还原之前, Copilot 显示更改的按文件预览,以便可以确认。
注意
回退将相对于状态应用, 然后Copilot 立即开始处理提示,而不是在处理提示后立即应用。
所选的提示将显示在输入区域中,以便根据需要编辑并重新提交它。
使用 /undo 斜杠命令回退
/undo斜杠命令及其别名/rewind提供了打开回退选取器的另一种方法。
两个命令产生的结果与在 空闲且输入区域中没有文本时按两次 Copilot 相同。
验证回滚
回滚后,可以使用 Git 命令来验证存储库的状态,并确认它是否符合预期。
通过键入 ! ,可以直接从 Copilot 命令行界面(CLI) 输入提示运行 shell 命令,因此无需退出 CLI 即可检查存储库状态。
| 要执行的操作 | 输入此命令 |
|---|---|
| 检查哪些文件显示为已修改、暂存或未跟踪。 | ! git status |
| 显示当前提交的 SHA 和提交消息。 | ! git log --oneline -1 |
| 查看未暂存的更改。 | ! git diff |