git diff
显示工作区、暂存区和提交之间的文件差异
语法
git diff [<options>] [<commit>] [--] [<path>...]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
--staged |
查看暂存区与最新提交的差异(同 --cached) | |
常用 |
--stat |
只显示变更统计摘要 | |
常用 |
--name-only |
只显示变更的文件名 | |
常用 |
--word-diff |
按单词级别显示差异 | |
常用 |
--color-words |
用颜色高亮变更的单词 | |
常用 |
-b |
忽略空白字符变更 | |
常用 |
示例
查看工作区未暂存的修改
git diff
查看已暂存但未提交的修改
git diff --staged
查看最近 3 次提交的所有变更
git diff HEAD~3
比较两个分支的差异
git diff main..feature
查看变更文件的统计摘要
git diff --stat
src/app.js | 12 ++++++------
src/util.js | 3 ++-
2 files changed, 8 insertions(+), 7 deletions(-)
只查看指定文件的差异
git diff -- src/login.js
技巧
- 提交前用 git diff --staged 确认暂存区内容
- Code Review 时用 git diff main..feature-branch 查看完整变更
- git diff --name-only 快速了解哪些文件被修改了
- 配合 difftool 使用图形化工具:git difftool --tool=vscode