1.问题讨论的情景

查看 比较 被git管理的文件在 工作区、暂存区和版本库之间的差异,
就需要用到 git diff 命令。
下面讨论以下四个情景下文件的差异的比较:* 工作区和暂存区* 工作区和版本库* 暂存区和版本库* 不同版本之间
【查看差异的方式主要是 git diff 命令不同的参数】

2.情景一:查看工作区和暂存区之间文件的差异

git diff 命令,默认查看的就是 工作区 和 暂存区之间文件的差异

1.git diff : 查看工作区和暂存区之间所有的文件差异
2.git diff -- 文件名:查看具体某个文件 在工作区和暂存区之间的差异
3.git diff -- 文件名1 文件名2 文件名3:查看多个文件在工作区和暂存区之间的差异
【注意】:查看具体文件的时候 --文件名 之间有一个 空格,文件名1文件名2文件名3之间也有空格

1.初始条件:工作区,暂存区之间保持干净一致的状态

2.修改工作区中的 文件

3.git diff -- 文件名1 文件名2 查看文件的差异

4.扩展:将工作区中修改的文件添加到暂存区后再比较差异情况

3.情景二:查看工作区和版本库之间文件的差异

git diff HEAD : 查看工作区与最新版本库之间的所有的文件差异
git diff 具体某个版本 : 查看工作区与具体某个提交版本之间的所有的文件差异
git diff HEAD -- 文件名 : 查看工作区与最新版本库之间的 指定文件名的文件差异
git diff HEAD -- 文件名1 文件名2 文件名3 :查看工作区与最新版本库之间的 指定文件名的多个文件差异
git diff 具体某个版本 -- 文件名 : 查看工作区与具体某个版本之间的 指定文件名的文件差异
git diff 具体某个版本 -- 文件名1 文件名2 文件名3 :查看工作区与最具体某个版本之间的 指定文件名的多个文件差异

1.初始条件:

9f5a54b版本只新增了五个文件:a.txt、 b.txt 、c.txt 、d.txt、 e.txt
da27f42 版本修改了 a.txt 和 b.txt 两个文件
当前工作区、暂存区、版本库状态一致

2.再修改一下 a.txt 文件内容

3.查看当前工作区 和 9f5a54b版本直接的文件差异

4.情景三:查看暂存区和版本库之间文件的差异

》官方文档写的就非常的好!git diff [<options>] --cached [--merge-base] [<commit>] [--] [<path>…​]This form is to view the changes you staged for the next commit relative to the named <commit>.
Typically you would want comparison with the latest commit, so if you do not give <commit>, it defaults to HEAD.
If HEAD does not exist (e.g. unborn branches) and <commit> is not given, it shows all staged changes.
--staged is a synonym of --cached.》 下面是我自己的译文:
此命令 用于查看 暂存区中和 指定提交 之间的文件差异。
特别指出:你可能最想比较暂存区与上一次提交之间的区别,所以,如果你不明确指定 提交的版本号,则默认是HEAD.
如果 HEAD 和 指定版本号都不存在,则该命令会展示暂存区中所有的修改。
--staged 参数和 --cached 参数是一致的。

git diff --cached : 查看暂存区和 上一次提交 的最新版本(HEAD)之间的所有文件差异
git diff --cached 版本号 : 查看暂存区和 指定版本 之间的所有文件差异
git diff --cached -- 文件名1 文件名2 文件名3 : 查看暂存区和 HEAD 之间的指定文件差异
git diff --cached 版本号 -- 文件名1 文件名2 文件名3 : 查看暂存区和 指定版本 之间的指定文件差异

1.初始条件:

9f5a54b版本只新增了五个文件:a.txt、 b.txt 、c.txt 、d.txt、 e.txt
da27f42 版本修改了 a.txt 和 b.txt 两个文件
f0c63af 版本修改了 a.txt 文件
当前工作区、暂存区、版本库状态一致

2.修改文件,并添加到暂存区

3.查看暂存区与上个提交版本之间的区别

4.查看暂存区与具体某个版本之间的区别

5.情景四:查看不同版本库之间文件的差异

git diff 版本号1 版本号2 : 查看两个版本之间的差异
git diff 版本号1 版本号2 -- 文件名1 文件名2 : 查看两个版本之间的指定文件之间的差异
git diff 版本号1 版本号2 --stat : 查看两个版本之间的改动的文件列表
git diff 版本号1 版本号2 src : 查看两个版本之间的文件夹 src 的差异

1.查看当前的版本列表

2.查看两个版本之间的差异


6.完成

Congratulations!
You are one step closer to success!

Git基础-git diff 比较文件的差异相关推荐

  1. Git基础-git的历史版本查看与版本回退(版本切换)

    1.谈一谈git中的版本回退 1.我们在git中的每一次 git commit 操作就会提交一个历史版本: 2.每一个历史版本都有一个唯一的hash值进行记录: 3.每一个历史版本实际上就是我们对工作 ...

  2. 使用 diff 查找文件的差异并生成补丁文件修补

          我们玩游戏的时候经常会遇到要下载一些补丁,那是因为游戏进行了更新,而你的客户端还是原来的版本,所以,需要一个补丁文件进行修补.       我们知道,linux 下的 diff 命令是找出 ...

  3. git 将暂存区文件提交_git基础命令之提交文件

    原标题:git基础命令之提交文件 测试百晓生 ceshibaixiaosheng 测试圈懂的最多的人,跟着百晓生一起学测试,你定会有收获.我就在你的口袋,你--有问题难得倒我吗? PS:一颗安利,百晓 ...

  4. 简单介绍Git基础学习之文件删除操作命令

    这篇文章主要为大家详细介绍了Git基础学习中的文件删除操作命令,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下 1.删除文件说明 在Git工作目录中要删除某个文件,首先要清楚该 ...

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

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

  6. git diff 比较文件_使用Python创建你自己的diff工具

    为什么我需要自己的diff工具? 我经常使用git跟踪我的编码项目.文章.业务工作等等.git的一个美妙之处在于,你可以通过简单地使用其内置的diff功能来轻松地比较你的工作的不同状态.要使用这个功能 ...

  7. Git忽略文件(.ignore)以及git status,git diff,git rm命令

    在之前的两篇文章中简单介绍了与git相关的基础知识,如果想要熟练和快速运用git,还需要熟悉git的其他相关的命令.这一篇文章就是关于git的一些常用的"其它命令" 忽略文件 如果 ...

  8. Git基础-删除文件 rm/git rm 命令详解

    1.文章概述 本文介绍git中删除文件的操作: 主要涉及命令如下 : 1.rm 2.git rm3.git rm -f4.git rm --cached5.git rm -r : 在删除文件夹的时候, ...

  9. Git基础(常用命令)介绍

    版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 关于版本控制分为三种:本地版本控制系统,如rcs:集中化的版本控制系统,如CVS.SVN:分布式版本控制系统,如Git. Gi ...

最新文章

  1. Webpack学习-工作原理(上)
  2. python matplotlib散点图-python matplotlib从函数更新散点图
  3. Java中对象的储存区
  4. python 使用raise语句主动抛出异常(Exception)、将异常抛出给上一级
  5. nodejs与javascript中的aes加密
  6. php之isset() 、empty()、is_null()的区别
  7. MapXtreme IResultSetFeatureCollection
  8. hilbert变换简介
  9. 【Web漏洞探索】跨站请求伪造漏洞
  10. php程序员工具箱v0.6,php程序员工具箱官方版
  11. ACM解题总结——HihoCoder1199 (微软笔试题)
  12. 详解c语言中‘\0’ ,‘0’, “0” ,0的区别
  13. 根据程序流程图化程序流图_程序流程图有什么用?简单实用的流程图模板大全...
  14. 第一次梦见这么多的狗
  15. 计算机二级考试场次是随机的,计算机二级考试知多少
  16. 线性代数A矩阵乘以A的转置的含义或者几何意义
  17. html制作菱锥旋转,几何画板实现三棱锥的旋转的操作方法
  18. C语言基础——预处理命令
  19. windows11任务栏全透明
  20. 2018“云移杯- 景区口碑评价分值预测

热门文章

  1. 天天说“要卸载知乎”,可大家还是在用,注册用户都1.6亿了
  2. OpenCV-Python图像像素直方图
  3. freeswitch+soundtouch 变声测试失败
  4. Golang常用设计模式
  5. 涂鸦智能Java实习面试经历
  6. 【VA 最终用户许可协议】(英)
  7. Python爬取微博热搜并定时发送邮件,及时了解最新动态!
  8. 有哪些顶级水平的中国程序员?最后一个,我愿称之为神
  9. [Python可视化]一种极具特色(但是并没有什么用)的GIS专题图可视化方法
  10. 想要靠外包刷题,结果却大跌眼镜