1.git diff -
diff 命令,即 differences,主要用于比较两个文件或者两个文件夹中文件的差异。在日常开发或者文档生成中,我们常常会同时维护着多个版本的文件,diff 命令就能用来帮助我们分析出不同版本之间的区别。diff 命令会逐行比较并在被比较的两个文件中寻找差异,如果文件相同,就不会有任何输出。
查看 比较 被git管理的文件在 工作区、暂存区和版本库之间的差异
就需要用到 git diff 命令。
一般使用以下四个情景下文件的差异的比较:
* 工作区和暂存区
* 工作区和版本库
* 暂存区和版本库
* 不同版本之间
【查看差异的方式主要是 git diff 命令不同的参数】
Linux diff命令实例详解
实例1:比较两个文本文件
1.[linux@bashcommandnotfound.cn ~]$ diff file1.txt file2.txt
这个简单的示例会比较两个文本文件,向我们显示两者之间的差异。
实例2:使用-c选项进行比较
2.[linux@bashcommandnotfound.cn ~]$ diff -c file1 file2
使用 -c 选项,我们可以在比较两个文件时显示“上下文”,即显示差异前后的几行代码,这样能更清晰地看到差异的具体位置。
实例3:使用 -i 选项忽略大小写进行比较
3.[linux@bashcommandnotfound.cn ~]$ diff -i file1 file2
在某些情况下,可能我们只关注内容差异,而不关注大小写差异,这时就可以使用 -i 选项。
实例4:使用 -w 选项忽略行内空格的差异
行内空格的差异有时候是我们并不关心的,这时可以使用 -w
选项来忽略它。
4.[linux@bashcommandnotfound.cn ~]$ diff -w file1 file2
实例5:使用 -B 选项来忽略空白行
有时候,在一个文件中的空白行会使得比较的结果显得混乱,我们可以通过 -B
选项来忽略这些变化。
[linux@bashcommandnotfound.cn ~]$ diff -B file1 file2
实例6:使用 -y 选项并排比较文件
有时我们不仅想知道两个文件的差异,还希望能同时看到两个文件的内容,这时候可以使用 -y
选项。
6.[linux@bashcommandnotfound.cn ~]$ diff -y file1 file2
实例7:使用-n选项以RCS格式输出差异
RCS (Revision Control System) 是一种老旧的版本控制系统,我们可以使用它的格式来输出 diff
的结果。
7.[linux@bashcommandnotfound.cn ~]$ diff -n file1 file2
实例8:比较目录
除了文件,diff
也可以用来比较目录。下面的命令将比较两个目录下的文件。
8.[linux@bashcommandnotfound.cn ~]$ diff directory1 directory2
实例9:使用-r选项递归比较目录
如果想要比较两个目录以及它们的子目录下的所有文件,我们可以使用 -r
选项。
[linux@bashcommandnotfound.cn ~]$ diff -r directory1 directory2
实例10:显示文件差异的统计信息
如果你想要查看文件差异的统计信息,比如哪些行被修改了,改了多少次,你可以使用 diffstat
命令。diffstat
是一个读取 diff
命令的输出,并生成相应的修改/插入/删除统计信息的命令。
10.[linux@bashcommandnotfound.cn ~]$ diff -uN dir1 dir2 | diffstat
2.实际操作图示
注:先使用git status列出后会更加详细;
git diff [path]
此时已显示出该文件对比状态,已提交和未提交;如图所示,红色为 - (更改前),绿色为 + (更改后),图示代码仅仅调整代码格式操作,其实在查找问题时没有查看的必要,故为了避免该情况,该情况需要使用实例4 -w来忽略。
git diff -w [path]
既无操作,其他操作同上原理。
作者也是初次使用git进行版本管理,边学边存,希望有其他快捷方式大家多多分享。