Git有很多功能,但一个重要的功能是可以匹配文档之间的差异。
一个常见的例子是,如果代码是恶意代码的,那么如果代码文件很大,则找到代码的位置可能需要一点时间。 利用Git的比对功能,可以非常容易地找到文件被编码的位置。 git diff命令实现我们的需求。
一.比较暂存区与工作区的差异:
暂存区的两个文件的内容如下。 [HTML]纯文本显示复制代码蚁族1
以上是自述. txt文件的内容。 [HTML]纯文本显示复制代码antzone
以上是antzone.txt文件的内容。
工作区在这两个文件中分别添加了一行。 匹配代码如下。 “shell”纯文本显示副本代码$ git diff
代码执行效果的屏幕截图如下。
默认情况下,将比较登台区和工作区之间的差异。
有关归类格式的信息,请参阅git diff输出格式的详细章节。 按如下方式匹配指定文件之间的差异: [ shell ]纯文本显示副本代码$ git diff readme.txt
上面的代码仅比较了登台区和工作区自述. txt文件之间的差异,代码执行结果如下:
2 .将指定的commit与工作区文档进行匹配:
匹配分支文档和工作区文档之间的差异实际上等同于匹配提交的文档和工作区文档之间的差异。 因为分支指向commit提交。 首先,让我们看看当前的提交历史记录。 代码如下。 [ shell ]纯文本显示副本代码$ git log --oneline
代码执行效果的屏幕截图如下。
看看最后一次提交和工作区文件之间的区别。 代码示例如下: [ shell ]纯文本显示副本代码$ git diff f 2303 a 6自述. txt
可以将上述代码与在f2303a6提交中指定的文件和与工作区对应的文件之间的差异进行匹配。
代码执行效果的屏幕截图如下。
3 .核对暂存区与指定提交之间的差异:
到目前为止是与工作区的对照,下面对指定的commit提交与暂存区域的对照进行说明。
代码示例是“shell”纯文本显示副本代码$ git diff --cached readme.txt
默认值将登台区与最后提交的指定文件进行匹配。
代码执行效果的屏幕截图如下。
当然,可以比较指定的提交和转移区域中文件的差异。 代码示例如下。 在“shell”纯文本中显示复制代码$ git diff-- cachedf 2303 a6自述文件. txt
可以将上述代码与f2303a6提交的自述. txt文件和临时区域中相应文件的差异进行比较。