IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git diff 命令6种使用场景 -> 正文阅读

[开发工具]git diff 命令6种使用场景

目录

一、背景&目标

二、git三个区了解

三、git diff 6种场景介绍

3.1 工作区和暂存区差异对比

3.2?工作区和版本库之间差异

3.3 暂存区和版本库之间差异对比

3.4 本地版本库之间提交记录对比

3.5 不同分支对比

3.6 不同分支下同一文件对比

?四、git diff 中@@ -x1,y1?+x2,y2 表示的意思

4.1 demo

4.2 具体解释


一、背景&目标

在之前公司中大家合并代码都是自己解决冲突,然后提交一个MR,具体负责人只是进行简单的代码查看和MR,所以并没了解过git其他命令,因为用不到。但是最近小伙伴们一个需求少的会创景3-4个分支,多的有7-8个分支,上线时自己合并代码是一件比较“艰难”的事情,所以我们需要git的diff 命令来查看具体区别,但是diff 有多种使用场景下面我们来了解一下;

二、git三个区了解

因为diff的介绍是离不开这三个区,所以优先了解一下这三个区;

Git中的划分为工作区(Working Directory),暂存区(Index,也就是Stage区),版本库(也就是每次提交commit以后的版本)?

工作区、暂存区、本地版本库三个区具体讲解见文章:git 工作区、暂存区、版本库三个区域介绍

三、git diff 6种场景介绍

3.1 工作区和暂存区差异对比

3.1.1?工作区和暂存区之间的差异

git diff? --stat

这个命令展示工作区和暂存区之间有区别的文件,以及该文件中有多少区别;

?从这里可以看到工作区和暂存区之间有2个文件被修改过,每个文件中有1处改动;

3.1.2?工作区和暂存区之间的详细差异

git diff 

这个命令显示的是详细的差异,比如是哪个文件中的哪行有变化;?

相比上面对比情况来看,工作区和暂存区(index 2e6f7ce...)中文件有区别,具体去区别会在下面展示。看上面1、2、3 发现1说明了工作区和暂存区中哪个记录有区别,2中列出了具体文件,3中展示具体文件中具体区别;

3.2?工作区和版本库之间差异

3.2.1 工作区和版本库之间差异

git diff HEAD  --stat
git diff commit_id --stat  

这个命令展示工作区和版本库之间有区别的文件,以及该文件中有多少区别;

可以看到这里是有2个文件被修改了,每个文件中只修改了1处;

3.2.2??工作区和版本库之间详细差异

git diff HEAD
git diff commit_id

?和之前工作区和暂存区一样,详细展示了具体差异;

3.3 暂存区和版本库之间差异对比

如果需要比较暂存区和版本库之间的差异,需要添加–cahced ,其他的指令类似,包括–stat;

 git diff --cached HEAD --stat
 git diff --cached commit_id --stat

暂存区和本地版本库之间差异,因为在本地修改后没有执行git add . 所以目前修改的东西都在工作区,所以暂存区和本地版本库是一致的;

git diff --cached HEAD
git diff --cached commit_id

3.4 本地版本库之间提交记录对比

3.4.1 本地版本库之间提交记录整体对比

git diff  e8f4da5267e 2a010f1ff6  --stat

查看本地版本库之间的差异,具体执行如下:

展示两个commit 之间有1个文件被修改了,改动有4行;

3.4.2 本地版本库之间提交记录详细对比

git diff  e8f4da5267e 2a010f1ff6

展示具体文件之间的区别

?从执行结果看到老文件的从199行开始有10行代码变动,而新文件中从199行开始有6行变动;

3.5 不同分支对比

3.5.1 两个分支整体对比

git diff branch1 branch2 --stat

?可以看到branch1和branc2两个分支有20个文件被改动,新增191行,删除64行;

3.5.2 两个分支详细对比

git diff branch1 branch2

?和其他对比是一样的,详细展示两个分支之间具体文件中的不同;

3.6 不同分支下同一文件对比

上面两种是来看分支之间不同的,但是没法对比两个分支中同一个文件具体有哪些区别,可以使用下面命令来对比;

说明:如果是代码 则分支后面不用加“--” 就能对比,但是配置文件不行,所以如果查看配置文件的区别还是要添加“--”的;

 git diff master_12 release_12  -- src/main/resources/bootstrap-dev.yml

不同分支,同一个文件对比如下:

?从上面文件看,这个文件是新建的,之前老文件没有,新文件中有影响的32行;

四、git diff 中@@ -x1,y1?+x2,y2 表示的意思

其实从上面我们也可以看到,只要是明细对比总会有@@-x1,y1 +x2,y2这样的值,那这些值代表什么那,如果明白这些会对我们有很大帮助,下面来看看具体代表含义;

4.1 demo

4.2 具体解释

@@后面的两个数字:“-19,7”,表示a文件中第19行开始的后面7行,“+19,6”表示以下数据是b文件中第19行开始后的后面6行。其中“-”表示a文件,“+”表示b文件。下一行用“-”号开头的表示a文件变成b文件的时候,这一行被删除。用“+”开头的则表示a文件变成b文件的时候,这一行被加入。没有正负号开头的部分则表示没有进行修改。

OK到这里git中diff命令的使用场景介绍结束了,大家有问题的可以在评论区留言或私信我哦!

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:29:10  更:2022-12-25 11:30:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:24:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码