Git功能众多,其中一个重要功能是可以比对文件之间的差异。

举一个常见的例子,如果代码被恶意挂码,如果被挂码文件较大,想找到挂码的地方可能要费一点周折,利用Git的比对功能,则可以非常轻松的找出文件被挂码的位置。git diff命令可实现我们的需求。

一.比较暂存区与工作区之间的差异:

暂存区两个文件的内容如下:[HTML] 纯文本查看 复制代码蚂蚁部落一

以上是readme.txt文件内容。[HTML] 纯文本查看 复制代码antzone

以上是antzone.txt文件内容。

现在工作区对这两个文件分别增加了一行,比对代码如下:[Shell] 纯文本查看 复制代码$ git diff

代码运行效果截图如下:

默认状态下,就是比较暂存区与工作区之间的差别。

关于比对的格式可以参阅git diff 输出格式详解一章节。比对指定文件之间的差异,代码如下:[Shell] 纯文本查看 复制代码$ git diff readme.txt

上面代码仅仅比对暂存区和工作区中readme.txt文件的差异,代码运行效果截图如下:

二.比对指定commit与工作区的文件:

比对分支文件与工作区文件的差异,其实与比对commit提交中的文件与工作区文件差异是一回事,因为分支就是指向某个commit提交的。首先看一下当前提交历史记录,代码如下:[Shell] 纯文本查看 复制代码$ git log --oneline

代码运行效果截图如下:

下面查看一下最后一次提交与工作区文件之间的差异,代码实例如下:[Shell] 纯文本查看 复制代码$ git diff f2303a6 readme.txt

以上代码可以比对f2303a6提交中指定文件与工作区对应文件的差异。

代码运行效果截图如下:

三.比对暂存区与指定提交差异:

前面都是与工作区进行比对,下面介绍一下指定commit提交与暂存区的比对。

代码实例如下:[Shell] 纯文本查看 复制代码$ git diff --cached readme.txt

默认是比对暂存区和最新提交的指定文件。

代码运行效果截图如下:

当然我们可以比对指定提交与暂存区文件差异,代码实例如下:[Shell] 纯文本查看 复制代码$ git diff --cached f2303a6 readme.txt

以上代码可以比对f2303a6提交下readme.txt文件与暂存区下对应文件的差异。

diff git 代码实现_Git比对文件之间的差异相关推荐

  1. diff git 代码实现_Git 自救指南:这些坑你都跳得出吗?

    每天都会写架构师文章,Java技术文章天天更新,感兴趣的点个关注再走呗! Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式. 但是一分耕 ...

  2. diff git 代码实现_Git diff 算法

    在Git中,有四种diff算法,即Myers,Minimal,Patience和Histogram.默认Myers.Minimal是Myers的改进,Histogram是Patience的改进.Mye ...

  3. diff git 指定时间_Git diff 代码比较的高级技巧

    Git diff 代码比较的高级技巧 Git是使用branch来管理不同的功能点开发的,那么我们怎样能比较不同branch的不同呢? 使用 git diff  branch1 branch2 , 就可 ...

  4. diff git 指定时间_Git 自救指南

    Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式.但是一分耕耘一分收获,如果想更好地掌握 git,需要付出大量的学习成本.即使在各种 G ...

  5. git hook分支_Git hook(钩子文件)机制

    githooks(5) NAME githooks - Hooks(钩子) used by git SYNOPSIS $GIT_DIR/hooks/* 简介 Hooks(钩子),是一些存放于$GIT_ ...

  6. git diff Git查看版本改动

    git diff git diff命令用于显示提交和工作树等之间的更改.此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容. 描述 在工作树和索引或树之间 ...

  7. 30天精通Git——第 09 天:比对文件与版本差异

    使用任何版本控制软件的过程中,经常会需要查看历史记录与比对版本之间的差异.而在使用 Git 的时候要如何进行比对,将是本文重点. 准备工作目录 我们通过以下指令快速建立一个拥有两个文件与两个版本变更记 ...

  8. diff git 指定时间_【GIT】从指定分支两个Tag中获取差异文件,进行代码的增量更新...

    介绍 随着DevOps兴起,在做CD代码上线交付时候,代码全量更新是很费时间的.下面代码就可以帮助我们从指定分支两个Tag中获取差异文件,进行代码的增量更新. 环境 Jenkins Git代码管理 获 ...

  9. 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )

    文章目录 一.添加暂存文件 git add 二.提交文件至版本库 git commit 三.查看版本库状态 git status 四.查询文件修改 git diff 一.添加暂存文件 git add ...

  10. git 查看修改明细_git查看某个文件的修改历史

    有时候在比对代码时,看到某些改动,但不清楚这个改动的作者和原因,也不知道对应的BUG号,也就是说无从查到这些改动的具体原因了- [注]:某个文件的改动是有限次的,而且每次代码修改的提交都会有commi ...

最新文章

  1. java swf转pdf_doc转pdf和pdf转swf
  2. 多通道图像的通道分享和合成函数-split、merge
  3. 逆袭“潮牌”后,李宁离安踏还有多远?
  4. 单片机学习--3D动画演示单片机工作原理
  5. 自动躲避障碍物,微型蜂鸟机器人靠AI算法飞行
  6. 【转载保存】lucene3.0可以对docId、docField、queryParser设置Boost值来影响排序结果
  7. 曝iPhone 12 Pro耗电异常,没开启任何应用电量也急剧下降
  8. php微信二次分享出错,解决微信二次分享bug
  9. java软件开发工程师的简历
  10. 零基础Matlab Note9--离散数据绘图set(gca, )
  11. 人工智能基础入门清单(计算机视觉、强化学习方向/领域)
  12. 7-2 排座位 (25 分)
  13. 实现登录注册页面详细(Servlet+jsp+java)
  14. WPF 触发器Triggers
  15. 「鸡尾酒排序」不会?每天一遍,排序再见【超详细】
  16. word中输入 千分之一 万分之一 符号
  17. 清华大学公开课线性代数2——第9讲:马尔科夫矩阵和正矩阵
  18. 滑动平均值滤波的VERILOG实现
  19. Qt实现中国象棋:(七)悔棋
  20. 大数据架构师从入门到精通

热门文章

  1. win下hadoop配置环境后cmd中报错
  2. 记录:mysql 字符串拼接函数
  3. Java制作验证码的完整代码
  4. python进阶路线 知乎_Python自学路线图之Python进阶
  5. 恒生笔试题B卷 数据库
  6. VoIP服务器Asterisk安装及部署
  7. python输入两个坐标求距离_python计算两个地址之间的距离方法
  8. linux i3 桌面,Linux 桌面平铺管理器 - i3wm
  9. Mac 电脑--excel方便的小技巧
  10. 20210422-微信刷脸支付获取调用凭证authinfo的时候,提示 rawdata无效