在工作中,开发完一个分支commit之前,我们通常要确定一下自己在什么地方更改了代码,看看有没有误操作代码,这个时候,git diff命令闪亮登场~

git diff:获得当前工作目录和上次提交与本地索引的差距,也就是可以获取本次你在什么地方修改了代码。
git diff file_name:获取指定文件的修改

执行git diff获得下图部分截图:

我们来解读一下上述图的结构,便于我们更好的理解我们的修改。
获取的结果大体的结构是:

diff –-git a/f1 b/f1
index 8f86bb9..d74049c 100644
- a/f1
+++ b/f1
@@ -1,7 +1,7 @@
code
code
code
-code
+code
code
code
code
  1. 第一行表示结果为git格式的diff
    diff --git a/f1 b/f1
    进行比较的是,a版本的f1(即变动前)和b版本的f1(即变动后)。

  2. 第二行表示两个版本的git哈希值和最后的六位数字是对象的模式
    index 7a67204..8213f76 100644
    index区域的7a67204对象,与工作目录区域的8213f76对象进行比较。100代表普通文件,644代表文件具有的权限(同linux文件权限)

  3. 第三四行表示进行比较的两个文件
    - a/f1
    +++ b/f1
    "-“表示变动前的版本,”+++"表示变动后的版本。

  4. 第五行表示代码变动的位置用两个@作为起首和结束
    @@ -1,7 +1,7 @@
    "-1,7″分成三个部分:减号表示第一个文件(即f1),"1″表示第1行,“7″表示连续7行。
    合在一起,就表示下面是第一个文件从第1行开始的连续7行。
    同样的,”+1,7″表示变动后,成为第二个文件从第1行开始的连续7行。

  5. 第三部分是变动的具体内容
    code
    code
    code
    -code
    +code
    code
    code
    code
    变动的行,上下文各显示3行。将两个文件上下文合并显示在一起。
    每一行最前面的标志位:“-”代表第一个文件删除的行用红色表示,“+”表示第二个文件新增的行用绿色表示,无标志表示该行无变动。

其他用法

$ git diff --cached
上面的命令会显示你当前的索引和上次提交间的差异;

$ git diff HEAD
上面这条命令会显示你工作目录与上次提交时之间的所有差别,这条命令所显示的 内容都会在执行"git commit -a"命令时被提交。

$ git diff test
上面的命令会显示你当前工作目录与另外一个叫’test’分支的差别。

$ git diff HEAD -- ./lib
上面这条命令会显示你当前工作目录下的lib目录与上次提交之间的差别(或者更准确的 说是在当前分支)。

$ git diff --stat
上面的命令会统计一下有哪些文件被改动,有多少行被改动

推荐阅读:
Git-【技术干货】工作中Git的使用实践
shell-【技术干货】编写shell脚本所需的语法和示例
Git - 使用git不知道内部实现机制怎么行

参考:博客 博客

如果转载此博文,请附上本文链接,谢谢合作~

如果感觉这篇文章对您有所帮助,请“点赞”或者“关注”博主,您的喜欢和关注将是我前进的最大动力!

Git-git diff命令结果解析相关推荐

  1. Git学习————diff命令进行文件比较

    文件比较: git diff xxx:将工作区的文件和暂存区进行比较: 比如我对111.txt文件,从 1111,改为: 111 111 解释:第五行:diff --git a/111.txt b/1 ...

  2. 一文搞明白GIT——Git原理解析与常用命令

    工作中经常用git,但是不少命令经常使用出现各种各样的问题,也不太理解其中的原理.今天专门总结一下git的原理,理解原理之后想实现什么样的功能直接找相应的命令即可.如有错误和不足,欢迎指正! 一. 工 ...

  3. git diff命令详解

    git diff命令详解 diff里面a表示前面那个变量,b表示第二个变量 HEAD     commit版本 Index     staged版本 a.查看尚未暂存的文件更新了哪些部分,不加参数直接 ...

  4. Git命令全解析-前端备忘录

    git是一个优秀的版本控制工具,极大地提高了团队开发的效率,废话不多说,接下来上栗子: 一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git ...

  5. git 常用命令及解析 由浅入深

    笔者用的是windows系统,不过并没有什么影响. Git  分布式版本控制系统. 为了让初学git的人明白git是干什么的,有什么意义 笔者觉得先来介绍git作为版本控制器是怎么运作的会让大家对后边 ...

  6. 关于git,这一篇git命令汇总解析就够了

    目录 Git: 前驱知识:版本控制 1.本地版本控制 2.集中版本控制: 3.分布式版本控制git Git命令: Git工作原理(核心): Git项目搭建: 创建本地仓库的两种方法:.git文件夹 G ...

  7. Git 基础 —— 常用命令

    Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 git init 创建 Git ...

  8. git的show-diff命令处理逻辑

    git的show-diff命令执行入口函数main(show-diff.c): 50 int main(int argc, char **argv) 51 { 52 int entries = rea ...

  9. Git 最全命令总结都在这里了

    1. 基本命令 git diff 不加参数直接输入 git diff : 尚未暂存的文件更新了哪些部分 git diff --staged : 已暂存文件与最后一次提交的文件差异 git diff - ...

最新文章

  1. vecm模型怎么写系数_第四十三讲 R-回归预测模型的自举重采样验证(boostrap-resampling)...
  2. linux bashrc与profile的区别
  3. 原野小年总共拍了多少_开一家羽毛球馆大概需要投资多少钱
  4. hdu-1541 Stars----- 树状数组
  5. td不允许自己扩展_V神原文详解:通过及时性检测器(TD)解决区块链的51%攻击问题...
  6. antimalware可以关闭吗_EMUI这几个功能一定要关闭 不然手机会越来越卡
  7. [技术收藏]关于IOPS
  8. CheckBox jsp+javaScript多项选择checkbox取值实现
  9. [置顶] Responder一点也不神秘————iOS用户响应者链完全剖析
  10. ORB-SLAM 解读(六)ORB特征点构建BoW
  11. 夜间灯光数据dn值_NPPVIIRS年度夜间灯光数据的合成方法与验证
  12. syntax sugar 2
  13. js怎么模拟点击网页元素
  14. 关于XDR的这些问题你都了解吗?
  15. 读书笔记--《原则》
  16. 在一张表里实现省市区镇村五级联动
  17. PIM协议(PIM-DM、PIM-SM)
  18. PMP-项目经理的角色
  19. Foxit PDF create
  20. dw怎么将html模板导入,DW如何创建模板?如何将网页存储为模板?

热门文章

  1. Unity 2D Spine 外发光实现思路
  2. 机器人队sw快速画图注意点
  3. 3d 打印模型下载网站
  4. 相信中国杂交水稻技术 国稻种芯:中菲农业创繁荣发展时代
  5. ASP.NET微信快速开发框架源码【源码分享】
  6. java duck的屏幕保护程序
  7. python 实现 PDF 页面横向纵向旋转
  8. 最新手机号验证码正则表达式
  9. 思科瘦AP开启telnet/ssh通过WLC命令方式
  10. 计算机网络配置与应用教学设计,计算机网络与应用教学设计