git status在比较什么
·
三区:
- 工作区 WD:本地真实文件
- 暂存区 Index:
git add缓存- 仓库 HEAD:当前分支最新 commit
4.git diff [–cached] --stat ,用来仅显示改动的文件,不显示具体内容。
git status 同时对比两组:
- WD vs Index → 红:未 add 的修改。
- Index vs HEAD → 绿:add 完未 commit 。
验证步骤:
1. git status 观察

输出提示:changes not staged for commit,文件红色。
含义:工作区内容 ≠ 暂存区内容。
2. 用 git diff 单独验证 WD vs Index


git show :test.txt, 查看暂存区 (Index/Stage)test.txt文件内容。
git diff --cached比较暂存区和本地仓库最新状态(Index vs HEAD)
3. 暂存区中,无test.txt的add记录,此时,暂存区和HEAD中的test.txt内容一致, git diff --cached test.txt无输出。

工作区修改test.txt后,add 到 暂存区,此时的暂存区和HEAD中的test.txt内容不一致,git diff --cached test.txt有输出。

此时,工作区的修改都已经add到暂存区,执行git diff 时,无输出,证明git diff 比较的是暂存区和工作区。

此时,工作区的修改都已经add到暂存区,执行git diff --cached
时,有输出,证明git diff --cached 比较的是暂存区和HEAD。

4. git diff HEAD 比较工作区和本地仓库head( WD ↔ HEAD)


关键命令对照总结(可直接用来验证)
| 命令 | 对比双方 | 作用 |
|---|---|---|
| git diff | 工作区 WD ↔ 暂存区 Index | 只看红色未 add 修改 |
| git diff --cached / --staged | 暂存区 Index ↔ HEAD(仓库) | 只看绿色已 add 未 commit 修改 |
| git status | 同时 WD↔Index、Index↔HEAD | 一次性展示两类差异 |
| git diff HEAD | 工作区 WD ↔ HEAD | 跳过暂存区,直接对比仓库 |
更多推荐




所有评论(0)