ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 差异对比的各种情况 ``` git diff <filename> ``` ![](https://img.kancloud.cn/64/13/641383f5b60689a8ad007e40cbe835b5_633x176.png) 当工作区有改动(存在unstaged的文件),**暂存区为空**,diff的对比是“**工作区与最后一次commit提交的仓库的共同文件**” 当工作区有改动(存在unstaged的文件),**暂存区不为空**,diff对比的是“**工作区与暂存区的共同文件**” ***** ``` git diff --cached 或git diff --staged ``` > cached 和staged都表示暂存区的意思 所以功能一样 显示**暂存区**(已add但未commit文件)和**最后一次commit**(HEAD)之间的所有不相同文件的增删改 **** ``` git diff HEAD: ``` 显示工作目录(已track但未add文件)和暂存区(已add但未commit文件)与最后一次commit之间的的所有不相同文件的增删改。 ``` git diff HEAD~X或git diff HEAD^^^…(后面有X个^符号,X为正整数): ``` 可以查看最近一次提交的版本与往过去时间线前数X个的版本之间的差异。 **** > 什么是unstaged状态: 就是文件发生了修改,但是没有加到暂存区。