2.8 更好的差异比较

Git对差异比较进行了扩展,支持对二进制文件的差异比较,这是对GNU的diff和patch命令的重要补充。而且Git的差异比较除了支持基于行的差异比较外,还支持在一行内逐字比较的方式,当向git diff命令传递—word-diff参数时,就会进行逐字比较。

上面介绍了工作区的文件修改可能会有两个不同的版本:一个在提交暂存区,一个在工作区。因此,在执行git diff命令时会遇到令Git新手费解的现象。

修改后的文件在执行git diff命令时会看到修改造成的差异。

修改后的文件通过git add命令提交到暂存区后,再执行git diff命令将看不到该文件的差异。

继续对此文件进行修改,再次执行git diff命令会看到新的修改显示在差异中,而看不到旧的修改。

执行git diff—cached命令才可以看到添加到暂存区中的文件所做出的修改。

Git差异比较的命令充满了魔法,本书第5.3节会带您破解Git的diff魔法。一旦您习惯了,就会非常喜欢git diff的这个行为。