三区:

  1. 工作区 WD:本地真实文件
  2. 暂存区 Index:git add 缓存
  3. 仓库 HEAD:当前分支最新 commit
    4.git diff [–cached] --stat ,用来仅显示改动的文件,不显示具体内容。

git status 同时对比两组:

  1. WD vs Index → 红:未 add 的修改。
  2. 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跳过暂存区,直接对比仓库
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐