> ## Documentation Index
> Fetch the complete documentation index at: https://unity.farlocus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 文件变更与撤回

> 变更面板、差异查看与单文件或整轮撤回

Agent 的每一处文件改动都会被记录。你可以随时查看差异，也可以按单个文件或整轮对话撤回。

## 变更面板

点击输入框上方的`文件修改`按钮展开面板：

* **范围切换**：`当前轮次`只看本轮改动，`全部修改`列出本次对话以来的所有改动。
* **状态分类**：每个文件标注 `Modified`、`Added`、`Deleted` 或 `Renamed`。
* **自动弹出**：默认在产生文件修改时自动打开面板。「设置 → 显示」的`面板行为`中可关闭自动打开，或开启发送新消息时自动关闭。

## 查看差异

* **内嵌查看**：点击文件或在文件的`文件操作`菜单中选择`查看差异`，在当前窗口查看改动前后的对比。
* **独立窗口**：选择`独立窗口`把差异审查开到单独的窗口中，适合双屏或长差异。默认打开位置可在「设置 → 显示」的`文件修改审查`中指定。

## 撤回

### 单文件撤回

在变更面板中打开某个文件的`文件操作`菜单，选择`撤回此文件`，将该文件恢复到本轮修改前的状态。其他文件和对话记录保持不变。

### 整轮撤回

* **变更面板**：`当前轮次`模式下点击`撤销本轮修改`，`全部修改`模式下点击`撤销全部修改`。整轮撤销会同时回退对应的对话记录。
* **`/undo` 命令**：弹出`撤回一轮对话`对话框，提供两种模式：
  * **`仅撤回会话`**：只回退对话记录，磁盘上的文件保持现状。适合文件改动想保留、但希望对话回到上一轮重新指挥的情况。
  * **`撤回文件 + 会话`**：文件与对话一并回退。

消息菜单中的`撤回到这条消息`可直接回退到任意历史消息处，见[会话页面](/sessions/index)。

## 脏写警告

撤回点之后文件又被改过时，Locus 会先提示再执行：

* **本会话的后续修改**：提示`该轮结束后这些文件又有新的修改，撤销时会一并回退`，并列出受影响的文件。确认后这些额外修改会随撤销一起消失。
* **其他会话的修改**：本次撤销会覆盖其他会话里更新的文件时，需要先检查列出的冲突文件，再决定是否点击`强制撤销`。
* **单文件撤回**：同样有对应提示，确认按钮为`仍要撤回`。

## 原理：基于 Git 快照

Locus 依赖版本管理实现「撤销」与「变更分析」：每轮开始前记录文件快照，撤回即把文件恢复到对应快照。因此撤回能力要求项目已完成 [Git 配置](/overview/install-and-setup)，Locus 使用的 Git 版本可在「设置 → 通用」的`Git 运行时`中选择。撤回只作用于 Agent 会话记录的改动范围；跨会话、跨提交的版本操作请使用「协作」页面，见[协作与提交](/collaboration/changes-and-commit)。
