{"meta":{"title":"回退 GitHub Copilot CLI 会话期间所做的更改","intro":"将 Copilot CLI 会话倒退到以前的提示，以撤消会话历史记录中的更改，并选择性地还原文件。","product":"GitHub Copilot","breadcrumbs":[{"href":"/zh/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos","title":"操作方法"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli","title":"Copilot CLI"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli","title":"使用 Copilot CLI"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/roll-back-changes","title":"撤消更改"}],"documentType":"article"},"body":"# 回退 GitHub Copilot CLI 会话期间所做的更改\n\n将 Copilot CLI 会话倒退到以前的提示，以撤消会话历史记录中的更改，并选择性地还原文件。\n\n## 介绍\n\n在交互式 Copilot CLI 会话中工作时， Copilot 可以更改文件、运行 shell 命令和修改存储库。 如果结果不是你所期望的，可以返回到会话中的之前的某个点以撤销这些更改。\n\n可以在空闲时Copilot按 <kbd>Esc</kbd> 两次，或使用`/undo`斜杠命令（或其别名`/rewind`）触发回退。\n\n选择要回退到的点时，可以选择是 **仅倒退对话** 还是 **倒退对话和还原文件**。\n\nRewind 在任何目录中工作，包括不是 Git 存储库的文件夹。 它仅还原已更改的文件 Copilot 。\n\n本文介绍如何回滚更改。 有关在会话中倒退到早期点的更多概念性信息，请参阅 [取消 GitHub Copilot CLI 操作并回滚更改](/zh/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/cancel-and-roll-back)。\n\n## 先决条件\n\n* **回退点必须存在。** 无法回退到会话中你的第一个提示之前。\n* **文件还原仅适用于跟踪文件更改的会话。** 如果在启用文件更改跟踪之前恢复启动的会话，则仅提供对话回退。 启动一个新会话，以便能够还原文件更改。\n* **文件还原会跳过自己更改的文件。** 当前内容不再与上次写入的内容 Copilot 匹配的文件（例如，因为之后编辑了它们），并且文件太大而无法备份，则不会被覆盖。\n* **Rewind 不适用于远程支持的会话**，或者会话仍在进行中。\n\n## 双击 Esc 键回退\n\n> \\[!WARNING]\n>\n> * 回退无法撤销。 一旦回滚，之后的会话历史记录将被永久删除。\n> * 如果选择还原文件， Copilot 则仅还原它更改的文件，并跳过其当前内容不再与上次写入的内容匹配的任何文件，因此不会覆盖你自己的以后的编辑。\n\n按 <kbd>Esc</kbd> 两次只会在空闲时 Copilot 打开回退选取器。 有关操作正在进行时双 <kbd>Esc</kbd> 执行的操作的详细信息，请参阅 [取消 GitHub Copilot CLI 操作并回滚更改](/zh/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/cancel-and-roll-back#what-pressing-esc-does-in-different-situations)。\n\nCopilot完成响应您输入的提示后：\n\n1. 确保输入区域为空，并且没有正在进行的工作。 如果输入区域中有文本，则快速连续按 <kbd>Esc</kbd> 两次会清除文本，而不是打开选取器。\n\n2. 连续两次按 <kbd>Esc</kbd> 打开回退选取器。\n\n   选取器列出了当前会话的可用回退点，其中最先列出最近一个。 同时显示最近的十个点。 如果有 10 个以上的键，请使用 <kbd>“ 和</kbd><kbd>” 箭头</kbd> 键滚动它们。\n   对于每个回退点，将显示你输入的提示的开始时间以及你提交的时间。 对于已更改文件的轮次，也会显示该轮次添加和删除的行数。\n\n3. 选择倒退点，然后按 <kbd>Enter</kbd>。\n\n   选择回退点将打开一个操作菜单，可在其中选择 **“仅对话** ”或“ **对话 +”文件**。 当该轮次和任何以后轮次都未更改任何可还原的文件时，后者将不可用。 在还原之前， Copilot 显示更改的按文件预览，以便可以确认。\n\n   > \\[!NOTE]\n   > 回退将相对于状态应用， **然后**Copilot 立即开始处理提示，而不是在处理提示后立即应用。\n\n   所选的提示将显示在输入区域中，以便根据需要编辑并重新提交它。\n\n## 使用 `/undo` 斜杠命令回退\n\n`/undo`斜杠命令及其别名`/rewind`提供了打开回退选取器的另一种方法。\n\n两个命令产生的结果与在 <kbd></kbd> 空闲且输入区域中没有文本时按两次 Copilot 相同。\n\n## 验证回滚\n\n回滚后，可以使用 Git 命令来验证存储库的状态，并确认它是否符合预期。\n\n通过键入 `!` ，可以直接从 Copilot CLI 输入提示运行 shell 命令，因此无需退出 CLI 即可检查存储库状态。\n\n| 要执行的操作               | 输入此命令                    |\n| -------------------- | ------------------------ |\n| 检查哪些文件显示为已修改、暂存或未跟踪。 | `! git status`           |\n| 显示当前提交的 SHA 和提交消息。   | `! git log --oneline -1` |\n| 查看未暂存的更改。            | `! git diff`             |\n\n## 延伸阅读\n\n* [GitHub Copilot CLI 命令参考](/zh/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-command-reference)"}