当前位置: 首页 > news >正文

Delta 一个新的 git diff 对比显示工具

目录

  • 介绍
    • git diff 介绍
    • delta介绍
  • 一、安装
    • 1.下载 Git
    • 2.下载 delta
    • 3.解压
    • 4.修改配置文件
    • 5. 修改主题
    • 6.其他配置和说明
  • 二、对比命令
    • 1.在项目中 git diff 常用命令
    • 2.对比电脑上两个文件
    • 3.对比电脑上的两个文件夹
  • 三、在Git 命令行中使用效果
  • 四、在idea 的Terminal命令行中使用效果

介绍

git diff 介绍

平时我们会在命令行使用 git diff 相关命令来对比文件的差异。(git diff命令可参考:git-diff命令说明)

比如:当前文件和该文件以前某一次提交进行对比、某文件的某两次提交记录进行对比、对比电脑上任意两个文件的差异。

但是 git diff 对比出来没有行号,并且不能并排显示差异,对比界面不太好看,,这个时候你就可以使用 delta 了 。

delta介绍

delta 是一款用于命令行的对比开源工具,它是基于 git 的,也就是它是通过 git 来对比文本得到不同点,然后做了美化处理,delta 提供了许多主题和配置,可以让你在命令行很方便的对比代码或文本,以此来提高你的工作效率。

所以如果你也经常使用命令行以及使用命令行来对比,那么 delta 就很适合你。

delta的github官网

一、安装

本文基于 windos 进行下载安装说明。

1.下载 Git

delta 是基于 Git 的,如果你没安装 Git 需要先去 Git官网下载 安装下 Git。

2.下载 delta

根据你的操作系统,到 delta 的发行下载页面下载最新的版本,官网传送门:delta下载。
或者
百度云下载windos版 (链接:https://pan.baidu.com/s/1JshHpA8kApTR1MG_i46Cog 提取码:bl5t)

3.解压

下载解压后,把 delta.exe 放到如下目录:

C:\Users\你的用户名\AppData\Local\Microsoft\WindowsApps

4.修改配置文件

打开 C:\Users\用户名\.gitconfig 文件,在其中增加如下配置:

[core]pager = delta[interactive]diffFilter = delta --color-only[delta]navigate = true		#运行使用 n 和 N 在 diff 部分之间移动line-numbers = true  #行号side-by-side = true	 #并排对比视图syntax-theme = Coldark-Cold #主题[merge]conflictstyle = diff3[diff]colorMoved = default

(如果你该目录下没有 .gitconfig 文件需要自己新建一个)

5. 修改主题

上面我们使用了Coldark-Cold 主题,它是为暗色背景提供的一个主题。
delta 为亮色和暗色背景的命令行提供了多种主题,你可以使用 delta --list-syntax-themes 命令来查看所有的主题。

亮色背景有以下:GitHubMonokai Extended LightOneHalfLightSolarized (light)gruvbox-light暗色背景有以下:1337Coldark-ColdColdark-DarkDarkNeonDraculaMonokai ExtendedMonokai Extended BrightMonokai Extended OriginNordOneHalfDarkSolarized (dark)Sublime SnazzyTwoDarkVisual Studio Dark+ansibase16base16-256gruvbox-darkzenburn

6.其他配置和说明

关于delta 的其他配置和自定义主题颜色等操作,可参考 :delta 官方配置说明

二、对比命令

1.在项目中 git diff 常用命令

(1).如果修改了多个文件,并且多个文件都没有使用 git add 加入到缓存区,那么可以使用 git diff 命令,会列出这些文件所有修改的地方

git diff

(2).如果 Test.java 文件没有使用 git add 加入到缓存区,那么可以如下列出该文件所有修改的地方

git diff Test.java

(3).比较某次提交和工作区的 Test.java文件的不同,XXXX 是 commitId

git diff XXXX Test.java

(4).如果多个文件已经使用了git add加入到了缓存区,使用下面的命令会列出这些文件所有修改的地方

git diff --cached

(5).如果某个文件已经使用了git add加入到了缓存区,使用下面的命令会列出该文件所有修改的地方

git diff --cached demo/Test.java

(6).查看当前工作区内容与 某次提交 的所有文件内容的差异

git diff XXXX   #XXXX是 commit Id

(7).比较两个版本号所有文件差异

git diff XXXX1 XXXX2   #XXXX1和XXXX2是 commit Id

2.对比电脑上两个文件

  • 对比 revised.txt 和 original.txt 并显示他们的差异(只显示差异不同点):
git diff --no-prefix revised.txt original.txt
或者:
detal revised.txt original.txt
  • 对比 revised.txt 和 original.txt 显示差异和文本所有内容:
git diff --no-prefix -U99999 revised.txt original.txt

3.对比电脑上的两个文件夹

你可以使用如下命令对比两个文件夹下所有文件的差异 (dir1 和 dir2 是你文件夹的名称)

detal dir1 dir2

三、在Git 命令行中使用效果

1.Git 命令行中Coldark-Cold 主题的效果

请添加图片描述

2.Git 命令行中 GitHub 亮色主题的效果

在Git 命令行中如果你想使用亮色的 GitHub 主题,你需要先把你的命令行背景颜色改为白色,
鼠标右键 ==> Options ==> looks ==> Background

请添加图片描述

请添加图片描述

四、在idea 的Terminal命令行中使用效果

1.使用 Dracula 主题在idea 的Terminal命令行中效果:

请添加图片描述

2.使用 GitHub 主题在idea 的Terminal命令行中效果:

(GitHub 主题是亮色主题,需要把 idea 的背景设置成白色,idea 里左上角 File --> Setting -->【Appearance & Behavior】下的 Appearance --> Theme下拉框选择IntelliJ Light)

请添加图片描述

相关文章:

Delta 一个新的 git diff 对比显示工具

目录 介绍git diff 介绍delta介绍 一、安装1.下载 Git2.下载 delta3.解压4.修改配置文件5. 修改主题6.其他配置和说明 二、对比命令1.在项目中 git diff 常用命令2.对比电脑上两个文件3.对比电脑上的两个文件夹 三、在Git 命令行中使用效果四、在idea 的Terminal命令行中使用效…...

C# 二进制序列化和反序列化示例

.NET框架提供了两种种串行化的方式: 1、是使用BinaryFormatter进行串行化; 2、使用XmlSerializer进行串行化。 第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储。可以使用[Serializable]属…...

【CSS】文字扫光 | 渐变光

码来 可调整角度与颜色值来改变效果 <p class"gf-gx-color">我是帅哥</p> <style>.gf-gx-color {background: -webkit-linear-gradient(135deg,red,red 25%,red 50%,#fff 55%,red 60%,red 80%,red 95%,red);-webkit-text-fill-color: transparen…...

Overhaul Distillation(ICCV 2019)原理与代码解析

paper&#xff1a;A Comprehensive Overhaul of Feature Distillation official implementation&#xff1a;GitHub - clovaai/overhaul-distillation: Official PyTorch implementation of "A Comprehensive Overhaul of Feature Distillation" (ICCV 2019) 本文的…...

<Linux开发>驱动开发 -之-内核定时器与中断

&#xff1c;Linux开发&#xff1e;驱动开发 -之-内核定时器与中断 交叉编译环境搭建&#xff1a; &#xff1c;Linux开发&#xff1e; linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下&#xff1a; &#xff1c;Linux开发&#xff1e; -之-系统移植 uboot移植过程详…...

希尔贝壳邀您参加2023深圳国际人工智能展览会

2023深圳国际人工智能展览会“AIE”将于2023年5月16-18日在深圳国际会展中心 (宝安)举办&#xff0c;希尔贝壳受邀参加&#xff0c;展位号&#xff1a;A331。 伴随着智能行业的快速发展&#xff0c;展会已被越来越多的企业列入每年必选展会&#xff0c;也成为各采购商选购的理…...

设计优质微信小程序的实用指南!

微信小程序是一种快速发展的应用形式&#xff0c;设计良好的小程序能够提升用户体验并吸引更多的用户。在设计微信小程序时&#xff0c;有一些关键的指南可以帮助我们做出出色的设计。以下是即时设计总结的一些设计指南&#xff0c;希望能对准备设计微信小程序的人有所帮助。 …...

大数据期末总结

文章目录 一、这学期分别学习了Scala、spark、spring、SpringMvc、SpringBoot1、scala2、spark3、spring4、SpringMvc5、SpringBoot 二、总结 一、这学期分别学习了Scala、spark、spring、SpringMvc、SpringBoot 1、scala Scala是一门基于JVM的编程语言&#xff0c;具有强大的…...

selenium面试题总结

今天有同学问到seleinum面试的时候会问到的问题&#xff0c;随便想了想&#xff0c;暂时纪录一下。欢迎大家在评论中提供更多问题。 1.selenium中如何判断元素是否存在&#xff1f; selenium中没有提供原生的方法判断元素是否存在&#xff0c;一般我们可以通过定位元素异常捕获…...

⑧电子产品拆解分析-1拖4USB拓展坞

⑧电子产品拆解分析-1拖4USB拓展坞 一、功能介绍二、电路分析以及器件作用1、内部电路拆解三、参考资料学习一、功能介绍 ①USB2.0一拖四通讯;②具备OTG功能,可适配大部分USB接口设备;二、电路分析以及器件作用 1、内部电路拆解 分析:❤️ ❤️ ❤️ 主控是MA8601 USB 2.0…...

月度精华汇总 | 最新XR行业资讯、场景案例、活动都在这一篇里啦!

​ 在过去的一个月中&#xff0c;平行云为您带来了关于XR领域的一系列精彩文章&#xff0c;涵盖了行业资讯、应用案例&#xff0c;市场互动&#xff0c;帮助您掌握XR领域最新动态&#xff0c;了解实时云渲染、Cloud XR技术的价值&#xff0c;以及平行云实时云渲染解决方案LarkX…...

Redis实战案例1-短信登录

Redis的共享session应用 1. 项目的相关工作 导入sql文件 找到对应的sql文件即可 基本表的信息 基本架构 导入对应的项目文件&#xff0c;启动相关的service服务; 在nginx-1.18.0目录下启动命令行start nginx.exe&#xff1b; 2. 基于session实现登录的流程 这里利用到Javaweb中…...

华为OD机试真题 JavaScript 实现【找终点】【2023 B卷 100分】,附详细解题思路

一、题目描述 给定一个正整数数组&#xff0c;设为nums&#xff0c;最大为100个成员&#xff0c;求从第一个成员开始&#xff0c;正好走到数组最后一个成员&#xff0c;所使用的最少步骤数。 要求&#xff1a; 第一步必须从第一元素开始&#xff0c;且1 < 第一步的步长 &…...

详解数据仓库数据湖及湖仓一体

比别人更快接收好文章 随着近几年数据湖概念的兴起&#xff0c;业界对于数据仓库和数据湖的对比甚至争论就一直不断。有人说数据湖是下一代大数据平台&#xff0c;各大云厂商也在纷纷的提出自己的数据湖解决方案&#xff0c;一些云数仓产品也增加了和数据湖联动的特性。 但是…...

基于注解切换、Hikari实现的SpringBoot动态数据源(支持JNDI)

实现效果 先说效果&#xff0c;要实现方法级别注解切换当前数据源&#xff0c;不设置注解时走默认数据源&#xff0c;同时支持JNDI源。 总体思路 Spring框架中存在一个抽象类AbstractRoutingDataSource&#xff0c;他是一个可以动态选择当前DataSource的路由类&#xff0c;我…...

Java中的动态链接VS操作系统动态链接

在操作系统OS中为了优化内存的使用会采用一种动态链接方式&#xff0c;一个文件想要在操作系统中运行必须经过编译、汇编译、链接、装载等步骤。可以参考Java程序是怎么跑起来的。本篇主要讲解Java栈帧中动态链接部分与操作系统的的动态链接的区别与联系 操纵系统为什么需要动态…...

深入理解Linux虚拟内存管理(七)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序 Linux设备驱动开发详解 深入理解Linux虚拟内存管理&#xff08;一&#xff09; 深入理解Linux虚拟内存管理&#xff08;二&#xff09; 深入理解Linux虚拟内存管理&#xff08;三&#xff09; 深入理…...

GSR II 智能速度辅助系统的型式认证和系统作为独立技术单元的型式认证测试流程和技术要求

智能速度辅助系统ISA的型式认证和系统作为独立技术单元的型式认证测试流程和技术要求 补充欧洲议会和欧洲理事会第2019/2144号条例,为机动车智能速度辅助系统的型式认证和这些系统作为独立技术单元的型式认证规定了详细的测试程序和技术要求,并修订该条例的附件二 (1)(EU…...

工厂方法模式(五)

过气的&#xff0c;终究是过气了 上一章简单介绍了工厂模式(四), 如果没有看过,请观看上一章 一.工厂方法模式 工厂方法模式&#xff0c;通过定义工厂父类负责定义创建对象的公共接口&#xff0c;而子类则负责生成具体的对象。 将类的实例化&#xff08;具体产品的创建&…...

力扣笔记(每日随机一题)——最佳买卖股票时机含冷冻期

问题&#xff08;中等&#xff09; 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 卖出股票后&a…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)

错误一&#xff1a;yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因&#xff0c;后面把yaml.safe_dump直接替换成yaml.dump&#xff0c;确实能保存&#xff0c;但出现乱码&#xff1a; 放弃yaml.dump&#xff0c;又切…...