乐者为王

Do one thing, and do it well.

Git笔记之diff

今天,我们重点来探讨一下git diff的用法。

我们知道在Git提交环节存在三大部分:工作目录、索引文件、仓库。每当你对代码进行了修改,工作目录的状态就发生了改变。索引文件是连接工作目录和仓库的桥梁,每次当我们使用git add命令后,索引文件的内容就改变了,变得和工作目录同步。仓库是提交环节的最后阶段,只有在我们使用git commit命令将索引文件中的内容提交后,我们的代码才真正地进入了仓库。

git diff就是用来比较提交环节三大部分的差别。其中,纯粹的git diff是查看工作目录与索引文件之间的差别;git diff –cached是查看索引文件和仓库之间的差别;git diff HEAD则是查看工作目录和仓库之间的差别。

下图是三种查看方式的说明:

git-diff

git diff会输出全部的差别内容,但有时我们只想看看修改的内容的汇总,这时就可以使用--stat选项。这里是它的使用实例:

1
2
3
git diff --stat
git diff --cached --stat
git diff HEAD --stat

如果你想查看其它分支与当前分支的差别,只要运行以下命令即可:

1
git diff <otherbranch>

你也可以加上路径限定符,来比较某一个文件或目录:

1
git diff <otherbranch> <filename>

Comments