- Git基础概念
- Git历史(简史)
- Git基础和原理
- Git安装设置
- Git使用前配置
- Git快速入门
- Git工作流程
- Git创建存储库
- Git克隆操作
- Git执行变更操作
- Git查看更改
- Git提交更改
- Git推送(push)操作
- Git更新操作
- Git隐藏(Stash)操作
- Git移动操作
- Git重命名操作
- Git删除操作
- Git修正错误
- Git标签操作
- Git补丁操作
- Git管理分支
- Git处理冲突
- Git不同平台换行符问题
- Git远程操作详解
-
Git常用命令
- git config命令
- git help命令
- git init命令
- git add命令
- git clone命令
- git status命令
- git diff命令
- git commit命令
- git reset命令
- git rm命令
- git mv命令
- git branch命令
- git checkout命令
- git merge命令
- git mergetool命令
- git log命令
- git stash命令
- git tag命令
- git fetch命令
- git pull命令
- git push命令
- git remote命令
- git submodule命令
- git show命令
- git shortlog命令
- git describe命令
- git rebase命令
git diff命令
git diff
命令用于显示提交和工作树等之间的更改。此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。
简介
git diff [options] [<commit>] [--] [<path>…] git diff [options] --cached [<commit>] [--] [<path>…] git diff [options] <commit> <commit> [--] [<path>…] git diff [options] <blob> <blob> git diff [options] [--no-index] [--] <path> <path>
描述
在工作树和索引或树之间显示更改,索引和树之间的更改,两个树之间的更改,两个blob对象之间的更改或两个文件在磁盘上的更改。
为了防止异常情况发生,请注意,上述描述中的所有<commit>
除了使用“..
”符号的最后两种形式之外,都可以是任何<tree>
。
示例
以下是一些示例 -
git diff <file> # 比较当前文件和暂存区文件差异 git diff git diff <id1><id1><id2> # 比较两次提交之间的差异 git diff <branch1> <branch2> # 在两个分支之间比较 git diff --staged # 比较暂存区和版本库差异 git diff --cached # 比较暂存区和版本库差异 git diff --stat # 仅仅比较统计信息
1. 检查工作树的几种方式
$ git diff #(1) $ git diff --cached #(2) $ git diff HEAD #(3)
- 工作树中的更改尚未分段进行下一次提交。
- 索引和最后一次提交之间的变化; 查看已经
git add
,但没有git commit
的改动。 - 自上次提交以来工作树中的更改;如果运行“
git commit -a
”,查看将会提交什么。
查看尚未暂存的文件更新了哪些部分,不加参数直接输入 -
$ git diff
此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
也就是修改之后还没有暂存起来的变化内容。
查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异 -
$ git diff --cached $ git diff --staged
显示的是下一次提交时会提交到HEAD的内容(不带-a
情况下)
显示工作版本(Working tree)和HEAD的差别
$ git diff HEAD
直接将两个分支上最新的提交做diff
$ git diff topic master $ #或 $ git diff topic..master
输出自topic
和master
分别开发以来,master
分支上的变更。
$ git diff topic...master
查看简单的diff结果,可以加上--stat
参数
$ git diff --stat
查看当前目录和另外一个分支(test
)的差别
$ git diff test
显示当前目录和另一个叫’test
‘分支的差别
$ git diff HEAD -- ./lib
显示当前目录下的lib目录和上次提交之间的差别(更准确的说是在当前分支下)
比较上次提交和上上次提交
$ git diff HEAD^ HEAD
比较两个历史版本之间的差异
$ git diff SHA1 SHA2
提示:SHA1,SHA2是类似 COMMIT ID 的32位长度的值。
上一篇:git status命令
下一篇:git commit命令