Git必知必会基础(07):git diff的使用

这篇具有很好参考价值的文章主要介绍了Git必知必会基础(07):git diff的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/10854115.html

git diff的作用

git diff主要用于比较差异,比如工作区和暂存区、暂存区和本地仓库、分支和分支等;

git diff可以帮助我们找出代码中的变更,从而更好地管理代码。

数据准备

本地仓库

git diff,git

工作区修改:修改qzcsbj.txt文件

git diff,git

工作区修改:新增test.txt文件

git diff,git

git diff:工作区和暂存区或者本地仓库

当工作区有改动,临时区为空,diff的对比是工作区与最后一次commit提交到本地仓库的共同文件

比较:git diff,结果没test.txt文件

git diff,git

当工作区有改动,临时区不为空,diff对比的是工作区与暂存区的共同文件

提交到暂存区

git diff,git

工作区修改文件:qzcsbj.txt

git diff,git

比较:git diff,结果没test.txt文件

git diff,git

查看指定文件的差异(比较工作区和暂存区):git diff 文件名

git diff qzcsbj.txt,执行结果和上图一样

列出工作区有变更的文件(相对本地分支),不显示变更的具体内容:git diff --stat

git diff,git

截止当前:

工作区内容:

qzcsbj.txt

hello, qzcsbj
666
123

暂存区内容:

qzcsbj.txt

hello, qzcsbj
666

test.txt

hello

本地分支内容:

qzcsbj.txt

hello, qzcsbj

git diff --cached 或 git diff --staged:暂存区和本地仓库

显示暂存区(已add但未commit文件)和最后一次commit(HEAD)之间的所有不相同文件的增删改(git diff --cached和git diff --staged相同作用)

此时工作区和暂存区差异如上面文字描述。

git diff --cached结果,结果有test.txt文件

git diff,git

git diff --staged结果,结果有test.txt文件

git diff,git

git diff HEAD:工作区以及暂存区和本地仓库

显示工作目录(已track但未add文件,也就是不包含首次新增未暂存的文件)和暂存区(已add但未commit文件)与最后一次commit之间的所有不相同文件的增删改。HEAD是指向当前分支的指针

git diff,git

git diff <分支名1> <分支名2>:分支或者commitid对比

比较两个分支上最后 commit 的内容的差别

先把master分支的都提交了

git diff,git

查看当前分支跟指定分支的差异:git diff 分支名

  也可以查看两个历史提交的差异(后者与前者相比):git diff commitid1 commitid2,commitid通过git reflog查看

git diff branch1 branch2 --stat 显示出所有有差异的文件(不详细,没有对比内容),后者和前者的差异,只比较已经commit的

git diff,git

git diff branch1 branch2 显示出所有有差异的文件的详细差异(更详细),后者和前者的差异,只比较已经commit的

应用场景:在合并改动之前,预览差异:git diff <source_branch> <target_branch>

git diff,git

补充:git diff结果的含义

示例1:

git diff,git

diff --git a/qzcsbj.txt b/qzcsbj.txt,表示文件qzcsbj.txt的两个版本
--- a/qzcsbj.txt,---表示更改前的文件
+++ b/qzcsbj.txt,+++表示更改后的文件
@@ -1 +1,2 @@,文件差异的区域,-1表示变更前从第1行到第1行,+1,2表示变更后从第1行到第2行

-hello, qzcsbj
+hello, qzcsbj
+666

-表示删除一行,+表示新增一行

示例2:

本地仓库

git diff,git

工作区:修改上方第一行和第二行,然后中间插入一行

git diff,git

diff结果

git diff,git

diff --git a/qzcsbj.txt b/qzcsbj.txt,表示文件qzcsbj.txt的两个版本
--- a/qzcsbj.txt,---表示更改前的文件
+++ b/qzcsbj.txt,+++表示更改后的文件
@@ -1,2 +1,3 @@,文件差异的区域,-1,2表示变更前从第1行到第2行,+1,3表示变更后从第1行到第3行

-hello, qzcsbj
-tester
\ No newline at end of file
+hello, 666qzcsbj
+job
+tester666
\ No newline at end of file

-表示删除一行,+表示新增一行,如果对一行内容进行修改,在此处体现出来的就是先删除一行,再新增一行

示例3:

git diff,git

diff --git a/text.txt b/text.txt,表示文件text.txt的两个版本
--- a/text.txt,---表示更改前的文件
+++ b/text.txt,+++表示更改后的文件
@@ -2,3 +2,4 @@ hello test,文件差异的区域,-2,3表示变更前从第2行开始,到第3行,+2,4表示变更后从第2行开始,到第4行

第一次修改
第二次修改
test分支:第一次修改
+test分支:第二次修改

+表示新增了一行,-表示删除了一行,如果对一行内容进行修改,在此处体现出来的就是先删除一行,再新增一行

【bak】文章来源地址https://www.toymoban.com/news/detail-852354.html

到了这里,关于Git必知必会基础(07):git diff的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【SQL 必知必会】- 第八课 使用函数处理数据

    【SQL 必知必会】- 第八课 使用函数处理数据

    目录 函数         函数带来的问题         可移植(portable)         是否应该使用函数? 使用函数         文本处理函数         SOUNDEX 支持         日期和时间处理函数         数值处理函数         函数带来的问题         与几乎所有

    2023年04月10日
    浏览(11)
  • 【必知必会的MySQL知识】②使用MySQL

    【必知必会的MySQL知识】②使用MySQL

    目录 前言 启动MySQL服务 连接MySQL MySQL数据库基本命令 小结 根据上一篇文章【必知必会的MySQL知识】①初探MySQL的内容,想必您对MySQL数据库有了一个整体的了解了,并且应该在自己电脑上已经安装上了MySQL。 这一篇呢我们来说一说这么连接上数据库并且使用它。 前面MySQL安装

    2024年02月02日
    浏览(11)
  • MySql必知必会

    MySql必知必会

    Buffer Pool基本概念 Buffer Pool:缓冲池,简称BP。其作用是用来缓存表数据与索引数据,减少磁盘IO操作,提升效率。 Buffer Pool由 缓存数据页(Page) 和 对缓存数据页进行描述的 控制块 组成, 控制块中存储着对应缓存页的所属的 表空间、数据页的编号、以及对应缓存页在Buffer Poo

    2024年01月22日
    浏览(13)
  • 必知必会Java

    必知必会Java

    你好,我是阿光。 最近想着把工作中使用过的java命令都梳理一下,方便日后查阅。虽然这类文章很多,但自己梳理总结后,还是会有一些新的收获。这也是这篇笔记的由来。 今天先聊聊 jps 命令。 jps 命令是JDK提供的一个工具,用于查看目标系统上的Java进程基本信息(进程

    2024年02月05日
    浏览(10)
  • 《SQL 必知必会》全解析

    不要哀求,学会争取。若是如此,终有所获。 原文:https://mp.weixin.qq.com/s/zbOqyAtsWsocarsFIGdGgw 你是否还在烦恼 SQL 该从何学起,或者学了 SQL 想找个地方练练手?好巧不巧,最近在工作之余登上牛客,发现了牛客不知道啥时候上线了SQL 必知必会的练习题。 《SQL 必知必会》作为麻

    2024年02月08日
    浏览(12)
  • 聊聊Flink必知必会(五)

    聊聊Flink的必知必会(三) 聊聊Flink必知必会(四) 从源码中,根据关键的代码,梳理一下Flink中的时间与窗口实现逻辑。 对数据流执行 keyBy() 操作后,再调用 window() 方法,就会返回 WindowedStream ,表示分区后又加窗的数据流。如果数据流没有经过分区,直接调用 window() 方法则会返

    2024年02月05日
    浏览(11)
  • 聊聊Flink必知必会(六)

    Flink是一个分布式系统,需要有效地分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,如Hadoop YARN和Kubernetes,但也可以设置为作为一个独立的集群运行,甚至作为一个库。 Flink运行时由两种类型的进程组成:一个JobManager和一个或多个taskmanager。

    2024年02月04日
    浏览(32)
  • ChatGPT入门必知必会

    ChatGPT入门必知必会

    更多文章欢迎关注公众号: stackoveriow 2023年是真正意义上的AI之年,因为ChatGPT 2007年,iPhone开启了智能手机时代, 2023年,我们迎来了人工智能时代,我们正处于历史的大转折点上,这也许是启蒙运动级别的思想和社会转折,工业革命级别的生产和生活转折 。继22年12月份从GP

    2023年04月18日
    浏览(23)
  • 聊聊Flink必知必会(二)

    聊聊Flink必知必会(二)

    Flink是一个有状态的流处理框架,因此需要对状态做持久化,Flink定期保存状态数据到存储空间上,故障发生后从之前的备份中恢复,这个过程被称为Checkpoint机制。而Checkpoint为Flink提供了Exactly-Once的投递保障。 流处理是一个数据不断输入的过程,为了更好更方便的快照,需要

    2024年02月08日
    浏览(11)
  • MySQL必知必会(初级篇)

    MySQL必知必会(初级篇)

    数据库 (DataBase,DB),是统一管理的、长期存储在计算机内的、有组织的相关数据的集合。特点是数据见联系密切、冗余度小、独立性高、易扩展,并且可以为各类用户共享。 MySQL :是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的

    2023年04月08日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包