命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
打开交互式 diff 查看器显示未提交更改
/diff/diff 是 Claude Code 会话内的 slash 命令,用于打开一个终端内交互式变更查看器,让开发者在不离开 CLI 的情况下审阅当前 working tree 中的所有未提交改动,以及按每个对话轮次(turn)拆解的文件变更。
该命令不接受任何参数,只读,不会修改任何文件。
官方命令参考页面为 code.claude.com/docs/en/commands;本指南的详细字段描述(阈值、键位、内部 git 命令等)主要来自社区实测文章交叉核实(见「来源」),官方页面是否逐字收录每个字段未在抓取内容中确认。
在 Claude Code 会话提示符处直接输入:
/diff
无需任何参数。命令被识别后,交互式查看器立刻在终端打开。
显示 git diff HEAD,即当前 working tree 相对于最近一次 commit 的全部未提交改动(包含未暂存和未追踪文件)。底层使用 git diff HEAD --numstat 和 git ls-files --others --exclude-standard 构建文件列表。
查看器顶部显示 Current · T1 · T2 · T3 …(T 代表 turn,最近的轮次排在最前)。每个轮次视图展示的是 Claude 在该轮对话中通过 file-edit tool 所做的改动,从对话记录而非 git 历史重建,因此即使你手动编辑文件或执行了 git add,对应轮次的记录仍然完整保留。
每个 turn 条目同时显示触发该轮修改的提示词片段,帮助回溯"这次改动是因为什么指令产生的"。
查看器界面分三个区域:顶部为数据源选择栏,中部为文件列表(含 +N -M 行统计),底部为逐行 diff 详情(带行号与词级高亮)。
| 按键 | 动作 |
|---|---|
← / → | 在 Current 和各 Turn 视图之间切换 |
↑ / ↓ | 在文件列表中选择文件 |
Enter | 展开所选文件的详细 diff |
j / k | 在详情区上下滚动(vim 风格) |
PgUp / PgDn / Space / Home / End | 详情区翻页 / 跳转 |
Esc | 关闭查看器,返回会话提示符 |
以下约束来自社区对源代码的实测分析(见"来源"部分),未经官方文档原文确认。
| 约束 | 行为 |
|---|---|
| 变更文件数超过 500 | 仅显示统计数字,不展示详细 diff 内容 |
| 单个文件变更超过 1 MB | 该文件被跳过,不在列表中显示 |
| 单个文件变更行数超过 400 行 | diff 内容被截断 |
| git 操作进行中(merge / rebase / cherry-pick 冲突状态) | 不显示 diff,查看器提示 git 不可用 |
| git 命令执行超过 5 秒 | 超时保护,diff 不显示 |
/diff | git diff HEAD(终端命令) | IDE diff 面板 | |
|---|---|---|---|
| 环境 | Claude Code 会话内 | 任意终端 | 需要打开 IDE |
| 按 turn 拆解 | ✅ | ✗ | ✗ |
| 交互式键盘导航 | ✅ | 取决于 pager | ✅ |
| 数据来源 | git + 对话记录 | 仅 git | 仅 git |
| 是否只读 | ✅ | ✅ | 通常可编辑 |
/diff 逐 turn 核查每一步实际改动了什么,确认没有意外覆盖文件。git diff 不完全一致:Turn 视图从对话 tool call 记录重建,如果你在 Claude 修改文件后手动再次编辑了同一文件,Current 视图会显示最终合并结果,而对应 Turn 视图只显示 Claude 当时写入的内容——两者之差就是你的手动修改。git diff HEAD,在非 git 目录下无法显示 working tree 改动。非 git 目录下 per-turn 视图的具体行为官方未明确,以实际运行为准。git diff HEAD 查看完整内容。