用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ZhangXin8069/configure --skill diff命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use when a user asks to create, apply, list, inspect, search, delete, amend, or rewrite Git tags, especially stab/dev/bug/test tags, subversions, snapshots, patches, or remote annotations.
当用户要求分析、解析、解读或梳理仓库结构、代码与文档关系、项目思路,或要求生成可追溯 的分析报告/PDF,或要为后续 agent 建立仓库整体参考时使用;输入 `{~analy ...}` 或 `{$...}` 时也使用。用户虽未说“分析”但目标是理解仓库全貌、代码对象或配置加载链时同样使用; 分析报告或其下游展示出现版式溢出、内容遮挡、页脚/列边界侵入时也使用。
当用户输入 `{~pure 主题}` 或 `{$用户输入}`,或要求穷尽/深挖项目核心、核心算法与竞争力、物理 图像、公式推导、代码与物理对应、精剖,或要为后续 agent 建立核心细节参考时使用;目标是把 项目最有价值的部分挖到底时,即使未明说“pure”也使用;核心细节在展示稿中出现公式、代码、表格 或流程遮挡/截断时也使用。
正在显示 SKILL.md
| name | diff |
| description | 当用户要求查看、显示或分析改动,使用 git diff、对比版本、做提交前自查、查看变更统计/日志, 或说“看看改了什么”“审查改动”时使用;只查看内容而不评估质量时尤其使用。 |
| metadata | {"openclaw":{"emoji":"🔍"}} |
遵循当前目录 AGENTS.md「技能执行公共契约」;仅按需读取技能正文与 reference。
--stat 看规模与分布,再按文件展开详情,避免输出淹没关键信息。先确认比较对象,按场景选命令:
| 场景 | 命令 |
|---|---|
| 工作区未暂存改动(默认) | git diff |
| 已暂存改动 | git diff --cached |
| 全部未提交(含暂存+未跟踪) | git status + 上述两者 |
| 某文件/目录的改动 | git diff -- <path> |
| 与上次提交对比 | git diff HEAD(含暂存)或 git diff HEAD~1 |
| 指定版本之间 | git diff <A> <B>(commit/tag/branch 均可) |
| 分支合并视角(两分支共同祖先起) | git diff <base>...<topic> |
| 某 commit 引入的改动 | git show <commit> --stat |
范围不明确时先提问("要看工作区改动还是某两个版本之间的差异?"——全部候选一次列出),不臆断。
git status --short # 全部状态,含未跟踪(??)
git diff --stat # 工作区改动统计
git diff --cached --stat # 暂存区改动统计
git diff <A> <B> --stat # 版本间统计
git diff --numstat # 逐文件 +N/-N
--stat,不一次性倾倒完整 diff。git diff # 完整差异
git diff -- <file> # 单文件
git diff -U5 -- <file> # 加大上下文(shell/配置改动适用)
git diff --word-diff # 单词级差异(长行/文本改动)
git diff --check # 空白错误与冲突标记
git diff --summary # 重命名/权限位/删除概览
git diff -M # 检测重命名(防误判为删+增)
--numstat 从大到小逐文件看;git diff --check 或搜索 ^<<<<<<<|^=======|^>>>>>>>;print/console.log/echo 调试行、临时文件、.bak、硬编码路径;git status 中 ?? 项(diff 不含未跟踪内容,需单独提示);--stat 显示 Bin 或不显示行数者;--summary 中的 mode 变化;--stat 中 deleted 项逐一确认是否有意。按「改动内容 → 推理依据 → 验证结果 → 后续步骤」输出:
✓ 改动概览
范围: <工作区/暂存区/版本间,比较对象>
统计: <N 个文件, +X/-Y 行>
分组: <新增/修改/删除/重命名/未跟踪各多少>
主导: <改动最大的文件与核心变化>
关注: <冲突标记/调试残留/意外删除/大文件/权限变化,无则省略>
| 场景 | 处理 |
|---|---|
| 非 git 仓库 | git rev-parse --is-inside-work-tree 校验,向用户报告 |
| 版本不存在 | git cat-file -t <ref> 校验;用 git tag / git log --oneline 列候选 |
| 空 diff | 区分"确实无改动"与"比较对象错误"(如 A=B、HEAD 未变) |
| diff 输出过大 | 用 --stat/--numstat 概览,按文件逐个展开,不一次性倾倒 |
| 二进制文件 | --stat 显示 Bin,说明无法文本对比;需要时用 --binary 或单独处理 |
| 含未跟踪文件 | git status 单独展示,明确 diff 不包含未跟踪内容 |
| 合并冲突中 | 提示先处理冲突:git diff --check 定位冲突标记,git status 看冲突文件 |
| 换行符/空白差异 | 用 --ignore-space-at-eol/--ignore-all-space 按需忽略;报告时说明 |
| 权限位变化 | --summary 查看 mode 变化,确认是否有意 |
| 重命名误判 | git diff -M 检测重命名,避免误报"删除+新增" |
| 范围表述含糊 | 先提问(工作区/暂存区/哪个版本区间——全部候选一次列出),不臆断 |