
使用 git diff –cached(或等价的 git diff –staged)可清晰查看暂存区中已 git add 但尚未提交的改动,与上一次提交(HEAD)之间的具体差异。
理解 –cached 的作用范围
该命令只比对「暂存区」和「最近一次提交(HEAD)」,不涉及工作目录的未暂存修改。也就是说,它精准反映你即将通过 git commit 提交的内容。
如果暂存区为空,命令输出为空,表示没有待提交的变更 若同时存在已暂存和未暂存的修改,–cached 不会显示未 add 的部分 它等同于 git diff HEAD –cached,显式写出 HEAD 更易理解其对比基准
常用搭配提升可读性
单独运行 git diff –cached 可能信息密集,加参数可聚焦关键信息:
git diff –cached –name-only:只列出被暂存的文件路径,快速确认范围 git diff –cached -p(-p 是默认行为):显示完整补丁(增删行),适合代码审查 git diff –cached –stat:用统计形式展示各文件增删行数,一目了然 git diff –cached -w:忽略空白字符变化,避免因缩进/换行导致干扰
结合工作流验证提交内容
在执行 git commit 前运行此命令,是防止误提交的有效习惯:
发现某次 git add . 意外纳入了调试日志或配置文件?立刻 git reset <file> 撤出 看到某段修改不在预期中?可退回编辑、测试后再重新 add 团队协作时,用它检查是否遗漏了关联文件(比如改了源码却忘了加新测试文件)
注意与其它 diff 命令的区别
避免混淆三个核心对比场景:
git diff:工作目录 ←→ 暂存区(即未 add 的改动) git diff –cached:暂存区 ←→ HEAD(即已 add 待提交的改动) git diff HEAD:工作目录 ←→ HEAD(所有未提交的改动,含已暂存+未暂存)

评论(0)