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

news2024/11/16 21:25:01

目录

  • 介绍
    • 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 命令来查看所有的主题。

亮色背景有以下:
 GitHub
 Monokai Extended Light
 OneHalfLight
 Solarized (light)
 gruvbox-light

暗色背景有以下:
 1337
 Coldark-Cold
 Coldark-Dark
 DarkNeon
 Dracula
 Monokai Extended
 Monokai Extended Bright
 Monokai Extended Origin
 Nord
 OneHalfDark
 Solarized (dark)
 Sublime Snazzy
 TwoDark
 Visual Studio Dark+
 ansi
 base16
 base16-256
 gruvbox-dark
 zenburn

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)

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642390.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

展览展会邀请媒体现场报道需要注意什么?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 真开心今天与大家分享展览展会邀请媒体的一些经验,行业复苏,各行各业都充满了活力,每天胡老师都会接到大大小小展会邀请媒体报道的需求,那…

终端数据防泄漏

场景描述 科技研发类公司在日常工作中,存在员工对源代码数据有意或者无意的传播。软件企业作为以源代码数据为核心资产的行业,如果数据安全管理不规范,会出现员工把核心数据一锅端,使企业失去竞争力,造成不可估计的损…

代码随想录算法训练营第五十六天|583. 两个字符串的删除操作|72. 编辑距离

LeetCode583. 两个字符串的删除操作 动态规划五部曲: 1,确定dp数组(dp table)以及下标的含义:dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2,想要达到相等&#…

自己尝试在springboot2.0微服务中内嵌一个FTP Server

1.pom.xml添加依赖 <dependency><groupId>org.apache.ftpserver</groupId><artifactId>ftpserver-core</artifactId><version>1.2.0</version></dependency> 2.yml文件添加Ftp服务参数 3.增加apache.ftpserver专用配置文件 文…

OWASO 之认证崩溃基础技能

文章目录 一、burp爆破用法1.Attack type爆破方式设置2.payload处理3.请求引擎设置4.攻击结果设置5.grap匹配设置 二、常见端口与利用1、文件共享2、远程连接3、Web应用4、数据库 三、爆破案例经验1、暴力破解攻击产生的5个原因或漏洞2、猜测用户名方法3、猜测密码方法 四、实验…

第七十三天学习记录:计算机硬件技术基础:微型计算机基础

一、微型计算机的组成&#xff1a; 微型计算机由硬件和软件两大部分组成&#xff0c;硬件是指构成微型计算机的物理实体或物理装置&#xff0c;包括微型计算机的微处理器、储存器、总线接口电路和外部设备&#xff0c;以及电源和机械构件等。软件是指微型计算机所使用的各种程…

Python3数据分析与挖掘建模(11)多因子:复合分析-分组分析与实现示例

1. 分组分析 1.1 概述 分组与钻取是数据分析中常用的技术&#xff0c;用于对数据进行聚合和细分分析。它可以帮助我们从整体数据中获取特定维度的汇总信息&#xff0c;并进一步钻取到更详细的子集数据中进行深入分析。 分组&#xff08;Grouping&#xff09;是指根据某个或多…

SciencePub学术 | 国内高口碑重点SCIEI征稿中

SciencePub学术 刊源推荐: 国内高口碑重点SCI&EI征稿中&#xff01;期刊质量高&#xff0c;接收领域广。信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 国内高口碑重点SCI&EI &#x1f4cc;【期刊简介】IF&#xff1a;7.5-8.0&#xff0c;JCR…

python高级-socket和web相关

目录 一、socket 1.客户端开发 2.tcp客户端 3.tcp服务端 4.连接的注意事项 5.多任务服务端 二、静态web 1.请求报文 2.响应头 3.静态web服务器 4.socket静态页面 5.多进程模拟404和200状态码 6.面向对象多任务 结语 一、socket 1.客户端开发 创建客户端套接字对…

anaconda ubuntu安装

1、下载anaconda 地址&#xff1a;https://www.anaconda.com/download#downloads 我是x86 64位系统&#xff0c;所以选择第一个 2、安装 执行命令&#xff1a; sh Anaconda3-2023.03-1-Linux-x86_64.sh中间会有几个过程 enter 确定 yes 确定 最后默认安装位置为&#xff1…

const、let、var区别

const、let、var区别 0、前言1、区别2、示例2.1 提前调用报错2.2 const与 let 定义的变量不能重复2.3 const与 let定义的变量如果在{}中只能在{}中调用2.4 const定义的变量不能重复赋值。 0、前言 let和const是ES6新增的声明变量的关键词&#xff0c;之前声明变量的关键词是var…

SpringBoot+mybatis教务管理系统

项目介绍 主要功能&#xff1a; 这个项目是一个教务管理系统&#xff0c;其中有三种角色&#xff1a;管理员&#xff0c;教师&#xff0c;学生 管理员权限&#xff1a; 管理员&#xff1a;对课程、学生信息、教师信息等进行增删改查&#xff0c;修改个人密码&#xff0c;修改学…

服务日志性能调优,由log引出的巨坑

只有被线上服务问题毒打过的人才明白日志有多重要&#xff01; 谁赞成&#xff0c;谁反对&#xff1f;如果你深有同感&#xff0c;那恭喜你是个社会人了&#xff1a;&#xff09; 日志对程序的重要性不言而喻&#xff0c;轻巧、简单、无需费脑&#xff0c;程序代码中随处可见…

新项目之初性能测试工作如何前移?

最近刚接手一个新项目&#xff0c;在最开始的时候要求对这个项目做性能测试&#xff0c;产品经理也给不出性能需求&#xff0c;只因为这个项目是电商项目&#xff0c;可能会有高并发&#xff0c;秒杀的场景&#xff0c;所以产品经理要求我们对这个项目必须做性能测试&#xff0…

Linux内核中内存管理相关配置项的详细解析16

接前一篇文章&#xff1a;Linux内核中内存管理相关配置项的详细解析15 三十五、Data Access Monitoring 此项展开后如下图所示&#xff1a; “DAMON: Data Access Monitoring Framework”项默认不选中。如果将其选中&#xff0c;则页面变为&#xff1a; 1. DAMON: Data Access…

关于 vue2 后台管理系统构建 vue2+mock.js 的经典案例

一&#xff0c;初识 Mock.js 1.什么是 mock.js: 主要是模拟数据生成器&#xff0c;可以生成随机数据&#xff0c;拦截器 Ajax 请求 2.为什么要使用 mock.js 由于很多学生在学习过程中&#xff0c;后端还没有做好接口&#xff0c;写好接口文档&#xff0c;有了mock.js 前端就…

2023VALSE目标跟踪相关的Poster

前沿&#xff1a;本博文分享了2023 中国无锡举办的VALSE 中与目标跟踪相关的Poster。 1. Weakly Alignment-Free RGBT Salient Object Detection With Deep Correlation Network IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 31, 20 摘要&#xff1a;RGBT显著性目标检测&am…

Linux5.4 Mysql数据库初体验及管理

文章目录 计算机系统5G云计算第四章 LINUX Mysql数据库初体验及管理一、数据库相关概念1. 数据 (Data)的概念2.表的概念3.数据库的概念4.数据库管理系统5.数据库系统 二、数据库的发展1.第一代数据库2.第二代数据库3.第三代数据库 三、主流的数据库介绍四、关系数据库1.概念2.E…

最强Postman替代品,国产软件Apifox到底有对牛?

目录 前言&#xff1a; 接口管理现状 一、常用解决方案 二、存在的问题 Apifox 解决方案 一、如何解决这些问题 二、Apifox 做的不仅仅是数据打通 三、后续功能规划 四、更多 Apifox 功能截图 前言&#xff1a; Apifox是一款国产的API接口管理工具&#xff0c;可以帮…

Linux之用户组管理

目录 Linux之用户组管理 创建用户组 --- groupadd命令 语法格式 参数及作用 案例 添加/删除组成员 --- gpasswd命令 命令格式 参数及作用 案例 修改用户组属性 --- groupmod命令 语法格式 参数及作用 案例 删除组账户 --- groupdel命令 语法格式 案例 用户和组…