差异对比
Diff
中级通用差异对比(Diff)是 Git 展示两个版本之间文件内容变化的方式,通常按行标出新增、删除和上下文。它帮你在提交或接收 AI 修改前,看清代码具体改了哪里,例如结账页的价格计算是否被动过。
你可能会说:「帮我看看 AI 刚改的代码到底动了哪些地方,别只告诉我改了几个文件。」
动手看看检查结账页价格改动
差异:+2 行 / -1 行
这个例子演示 Git 的差异对比:结账总价多算了 5 元运费。对比会标出删除和新增的行,也保留没变的代码作为上下文。
试试把修改后的 const shipping = 5; 改成 const shipping = 0;,看看标出的内容怎么变。差异对比只看文字变化,不判断收费是否合理。
试试把修改后的运费行删掉,并把总价计算改回修改前的写法。两边内容相同时,增删标记就会消失。
要点看一份 Diff,先弄清哪几件事?
- 1
先确认拿哪两个状态比较
Diff 的结果取决于比较对象。比如,git diff 看工作区中尚未暂存的改动;git diff --cached 看已暂存、准备提交的改动。你先说清想检查哪一部分,才不会漏看另一部分。
- 2
加减号表示内容如何变化
Diff 通常按文件展示变化:行首的减号表示旧内容被移除,加号表示新内容被加入,旁边还会带一些未改动的行帮助定位。它告诉你文本怎么变了,不直接证明功能运行正确。
- 3
留意它没有展示的内容
只看 git diff,可能看不到已暂存的改动;尚未被 Git 跟踪的新文件也不会出现在普通的 git diff 结果里。比如 AI 新建了一个支付配置文件,你还得结合 git status 确认文件清单。
容易混淆的地方
Diff 是“比较后看到的变化”,提交(Commit)是把已暂存的内容记录进版本历史;看到 Diff 不等于已经提交。它也不是代码冲突:冲突发生在合并等操作中,Git 无法自动确定怎样整合两边的修改。你可以用 Diff 查看冲突附近的改动,但它不会替你决定保留哪种实现。
什么时候用
适合用
- AI Agent 改完登录流程后,你想在提交前逐行检查它是否顺手改了权限判断。
- 准备合并同事的结账页改动时,你想对照目标分支查看价格计算有哪些变化。
- 修复一个文案问题后,你想确认暂存区里只有文案改动,没有夹带调试代码。
不适合用
- 页面运行时才报错,你想知道报错从哪里传来;先看报错与调用栈,Diff 只能辅助追查近期改动。
- 你想判断新版页面在手机上是否排版错乱;直接运行页面并检查不同屏宽,代码 Diff 不能替代视觉验证。
- 你已经确认某次提交需要撤回;用重置或回退提交处理,Diff 只负责展示变化,不会撤销它。
练一练选一个答案,看看解释
AI 改了后台的订单筛选功能。你已经暂存了一部分文件,随后又继续修改了同一功能。现在只想检查暂存之后新增的改动,该看什么?
让 AI 帮你做复制给 AI Agent 直接用
请先用 git status 确认文件状态,再分别展示未暂存和已暂存改动的 Diff。按文件说明关键变化,重点检查订单筛选条件和权限判断;如有未跟踪文件,单独列出。先不要提交或修改代码。