git diff --cached用于查看已暂存但未提交的改动,即对比暂存区与HEAD的差异,是提交前确认变更内容的关键命令。

使用 git diff --cached(或等价的 git diff --staged)可以查看**已经添加到暂存区、但尚未提交**的文件改动。它对比的是暂存区(index)和最近一次提交(HEAD)之间的差异。
什么时候该用 diff-cached?
当你执行过 git add,想确认哪些改动已被暂存、准备提交时,这个命令就非常关键。它帮你避免“误加”或“漏加”文件,是提交前的安全检查步骤。
基本用法与常见组合
-
查看所有已暂存的改动:直接运行
git diff --cached -
只看某个文件的暂存改动:
git diff --cached -- path/to/file.txt -
以更易读的方式显示(带颜色、行号):加上
--color-words或-w忽略空白变化,例如:git diff --cached -w -
对比暂存区与任意历史提交:
git diff --cached abc1234(abc1234 是某次 commit 的哈希前缀)
和其它 diff 命令的区别要分清
理解这三个常用 diff 的作用范围,能避免混淆:
-
git diff:对比工作区和暂存区(即还没add的改动) -
git diff --cached:对比暂存区和HEAD(即已add、待提交的改动) -
git diff HEAD:对比工作区和HEAD(所有未提交的改动,含已暂存+未暂存)
一个小技巧:提交前快速验证
建议养成习惯,在 git commit 前先执行 git diff --cached。如果输出为空,说明暂存区没有内容——可能忘了 git add;如果有输出,就能逐行确认是否符合预期。
若发现暂存了不该提交的内容,可用 git reset HEAD -- file.txt 把它从暂存区撤回(不影响工作区修改)。










