工作区 vs 暂存区
// 查看文件在工作目录与暂存区的差别。
//如果还没 add 进暂存区,则查看文件自身修改前后的差别。也可查看和另一分支的区别。
git diff <filename>
暂存区 vs 本地仓库
// 查看已经 add 进暂存区但是尚未 commit 的内容同最新一次 commit 时的内容的差异。
//也可以指定仓库版本
git diff --cached <filename>
工作区 vs 本地仓库
// 查看工作区同本地仓库指定 commit 的内容的差异。
git diff <commit> <filename>
//<commit>=HEAD 时:查看工作目录同最近一次 commit 的内容的差异。
git diff HEAD^ <文件名> //显示上一次提交之前工作目录与git仓库之间的差异。
//所以我们在git pull后,可以通过git diff HEAD^来查看拉下来的文件有那些具体的修改。
Git本地仓库 vs Git本地仓库
// Git仓库任意两次 commit 之间的差别。
git diff <commit> <commit>
分支 vs 分支
//显示出所有有差异的文件的详细差异
git diff <branchA> <branchB>
//比较当前分支时可省略
git diff <目标分支>
// 比较A分支中有B分支没有的提交记录
git log branchA ^branchB
//显示出branch1和branch2中差异的部分
git diff branch1 branch2 --stat
//生成一个.diff文件记录所有差异
git diff [branchA] [branchB] >>d:/diff/exportname.diff
失败–需进一步测试
// git diff 时忽略部分文件,不进行对比,采用.gitattributes时失效且会报错
//待进一步进行测试并记录