你还在手动对比代码差异?这些高质量工具太香了

news2024/11/27 8:21:36

B站|公众号:啥都会一点的研究生

我发现相当一部分初学者(甚至搬砖多年的老同志)在对比文件差异的时候居然还是

观察法

文本内容少还凑活能用,成百上千行的时候把眼睛累坏了不说,关键还容易漏信息

接触的人与事多了会发现,信息差这玩意,了解的人用生产力早已习惯

而自己第一次知道时表面风平浪静,内心“Woc居然还能这样”

所以,当你想对比两个代码(或各类文本)文件之间有什么差异,在没有Git管理环境的前提下怎么办呢?

本期整理了几个常用的文本对比工具,大大提高效率,一起看看吧

Meld

http://meldmerge.org/

环境:Windows | Linux | Mac
在这里插入图片描述
把Meld放在前面是因为这是我用了几年的文件/文件夹对比工具,属于装机必备软件

Meld是一种面向开发人员的可视化差异和合并工具。提供文件甚至整个文件夹的两路和三路比较,并支持许多流行的版本控制系统,可大幅帮助审查代码更改并定位补丁

  • 文件及目录的两路和三路比较
  • 文件对比可以随着输入而实时更新
  • 自动合并模式和更改块操作使合并更容易
  • 支持Git,Bazaar,Mercurial,Subversion等

VSCode自带对比功能

https://code.visualstudio.com/

环境:Windows | Linux | Mac

  • 选择第一个文件

在这里插入图片描述

  • 选择第二个文件

在这里插入图片描述

  • 结果

在这里插入图片描述

KDiff3

https://github.com/KDE/kdiff3

环境:Windows | Linux | Mac
在这里插入图片描述
KDiff3同样也是一个文件和目录diff与合并工具,支持

  • 比较和合并两个或三个输入文件或目录
  • 逐行逐字符显示差异
  • 自动合并功能
  • 集成的编辑器,用于解决合并冲突
  • 历史记录合并
  • 直观的图形用户界面
  • 为KDE-Dolphin和Windows-Explorer提供上下文菜单
  • 版本控制
  • Unicode、UTF-8和其他文件编码

TkDiff

https://sourceforge.net/projects/tkdiff/

环境:Windows | Linux | Mac
在这里插入图片描述
TkDiff是diff程序的图形前端,提供两个文件间差异的并排视图,拥有一些创新功能,如diff书签,用于快速导航的diff map,以及用于切片diff区域以实现所需的合并输出

  • 允许Diff区域重新分区以进行精确合并
  • 提供有关更改范围的统计/报告
  • 高度可配置的界面
  • 与多个diff引擎一起使用
  • 支持目录与单个文件比较
  • 完全支持3路合并,并可以帮助解决冲突

WinMerge

https://winmerge.org/

环境:Windows
在这里插入图片描述
WinMerge是一个用于Windows的开源文件差异对比和合并工具,可以比较文件夹和文件,以易于理解和处理的可视文本格式呈现差异

  • 3路文件比较
  • 本地化界面
  • 具有语法高亮、行号和自动换行的灵活编辑器
  • 插件支持
  • 使用文件大小和日期进行快速比较
  • Shell 集成(支持 64 位 Windows 版本)等

Diffinity

https://truehumandesign.se/s_diffinity.php

环境:Windows
在这里插入图片描述
Diffinity是一种差异和合并工具,重点在于准确且易于阅读代码差异,并逐行和逐字符的呈现

  • 改进了xml和c风格源代码的diff质量
  • 所有diff的缩略图视图
  • 区分更改、删除和添加的行
  • 双击或搜索一个单词以显示所有实例
  • 语法高亮
  • 支持unicode并自动检测编码
  • 可定制界面
  • 输入新内容时实时更新差异

Notepad++ Compare plugin

https://sourceforge.net/projects/npp-compare/

环境:Windows
在这里插入图片描述
Notepad++是流行的编码程序之一,通过该插件可以执行简单的代码比较

以上就是本期全部内容,希望有所帮助,少走因信息闭塞导致的弯路

点赞在看呗~

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

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

相关文章

volatile的可见性探讨

我跟volatile修饰对象和数组能保证其内部元素的可见性?一文的作者有类似的疑惑,按语义,volatile修饰数组时,只是保证其引用地址的可见性,可为什么给数组加了volatile之后,似乎单个数组元素也有了可见性&…

Android Glide同步阻塞方式submit获得Bitmap,kotlin

droid Glide同步阻塞方式submit获得Bitmap,kotlin 需要放入后台线程,不能在主线程。 Android Glide预加载preload ,kotlin_zhangphil的博客-CSDN博客【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了…

AC+AP 旁挂式连接配置(华为)

AR1路由器配置 # interface GigabitEthernet0/0/0 ip address 10.1.30.1 255.255.255.0 ip route-static 10.1.20.0 255.255.255.0 10.1.30.2 # LSW1核心交换机 # dhcp enable vlan batch 10 20 30 interface Vlanif20 ip address 10.1.20.1 255.255.255.0 dhcp select in…

nacos启动多个集群

nacos启动多个集群,只需要改动集群的名称,然后再次实例服务即可。

Vue3正式发布那么久了,你认识Pinia了吗?

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

一个无经验的大学毕业生,可以转行做软件测试吗?

先说答案,一个无经验的大学毕业生,可以转行做软件测试。 首先什么人会提出这个问题?应该是个大学生,而且肯定不是计算机系毕业的,甚至都不可能是一个工科生。因为哪怕是工科毕业的学生,大学期间最少也学习过C语言编程…

数据结构(王道)——栈的应用

一、括号匹配检查 思路: 算法结构: 代码实现: 算法思路总结: 二、表达式求值 中缀、后缀、前缀表达式: 中缀转后缀表达式 三、栈在递归当中的应用 递归在斐阶乘的应用 缺陷:递归层数过多的话可能会导致栈溢…

小程序MobX创建store并实现全局数据共享

查看小程序根目录中是否存在package.json文件 在项目根目录运行cmd 没有package.json文件输入npm init -y初始化一下,初始化一个包管理 安装MobX npm install --save mobx-miniprogram4.13.2 mobx-miniprogram-bindings1.2.1 小程序菜单栏工具–构建npm 根目录创建store文…

单目相机标定、图像校正、单目位姿估计、差值法检测移动物体、稠密光流法跟踪移动物体

目录 1、单目相机标定 2、图像校正 3、单目位姿估计 4、差值法检测移动物体 5、稠密光流法跟踪移动物体 1、单目相机标定 //单目相机标定 int test1() {//读取所有图像vector<Mat> imgs;string imageName;ifstream fin("F:/testMap/calibdate.txt");while(…

AtCoder Regular Contest 159

B - GCD Subtraction 题意&#xff1a; 给定两个正整数 A , B A,B A,B&#xff0c;给定一个操作&#xff1a;令 g g c d ( A , B ) ggcd(A, B) ggcd(A,B)&#xff0c;令 A A − g , B B − g AA-g, BB-g AA−g,BB−g。问最少经过多少次操作之后其中一个数变为0. 思路&…

APPScan介绍以及安装方式【附带链接】

AppScan介绍和安装 请务必下载绑定的链接&#xff0c;避免环境错误 1.简介 Appscan 10中文版是是全新网络安全漏洞扫描软件&#xff0c;软件可以直接可以对OS命令、SSRF和XXE攻击等漏洞进行检测&#xff0c;使得漏洞检测更加容易&#xff0c;提高漏洞的扫描效率。软件同时支…

[LeetCode周赛复盘] 第 354 场周赛20230716

[LeetCode周赛复盘] 第 354 场周赛20230716 一、本周周赛总结6889. 特殊元素平方和1. 题目描述2. 思路分析3. 代码实现 6929. 数组的最大美丽值1. 题目描述2. 思路分析3. 代码实现 6927. 合法分割的最小下标1. 题目描述2. 思路分析3. 代码实现 6924. 最长合法子字符串的长度1.…

Go语言之重要数组类型map(映射)类型

通过切片&#xff0c;我们可以动态灵活存储管理学生姓名、年龄等信息&#xff0c;比如 names : []string{"张三","李四","王五"} ages : []int{23,24,25} fmt.Println(names) fmt.Println(ages)但是如果我想获取张三的年龄&#xff0c;这是一个…

概率论的学习和整理17:EXCEL的各种期望,方差的公式

目录 1 总结 1.1 本文目标总结方法 1.2 总结一些中间关键函数 2 均值和期望 2.1 求均值的公式 2.2 求随机变量期望的公式 2.3 求随机变量期望的朴素公式 3 方差 3.1 确定数的方差 3.2 统计数的方差公式 3.3 随机变量的方差公式 3.4 EXCEL提供的直接计算方差的公式 …

Ant Design Vue组件,a-select标签

a-select标签是组件里的选择框&#xff0c;具体使用可以查看官网&#xff0c;这里记录一下在使用中遇到的问题。 最近在做项目的时候有一个需求在 a-modal 标签中加入 a-select 标签&#xff0c;a-modal 是模态对话框&#xff0c;意思就是在模态对话框里面添加选择框&#xff0…

Cglib 动态代理实现

每天看看新东西,心情也要好上许多 问题 cglib是如何实现动态代理的cglib如何支持类的代理cglib和jdk的动态代理有什么区别 使用方式 cglib不属于jdk的一部分,因此要使用需要先引入相应的包,maven依赖如下 <dependency><groupId>cglib</groupId><artif…

TortoiseGit 入门指南09:合并

前面章节讲了 分支&#xff0c;提到一种常用的工作流&#xff1a;将默认分支&#xff08;master&#xff09;设置为主分支&#xff0c;保存最新的、随时可以发布的版本&#xff0c;所有的新特性、BUG都在另一个称为特性分支上增加或修改&#xff0c;然后在一个合适点&#xff0…

Ubuntu下搭建Redis主从集群

目录 准备实例和配置 开启主从关系 测试配置 搭建的主从集群结构&#xff0c;只有主服务器与客户端进行写操作&#xff0c;通过主从同步数据&#xff0c;从服务器向客户端提供读操作 共包含三个节点&#xff0c;一个主节点&#xff0c;两个从节点。 这里我们会在同一台虚拟机…

【C++】多线程编程二(std::thread详解)

目录 std::thread详解 &#xff08;1&#xff09;启动线程 ①无参无返回的函数作为入参 ②函数对象&#xff08;仿函数&#xff09;作为入参 &#xff08;2&#xff09;不等待线程detch() &#xff08;3&#xff09;等待线程完成join() &#xff08;4&#xff09;向线程…

CANoe如何配置Master/Slave模式

系列文章目录 文章目录 系列文章目录前言一、CANoe配置端口二、CANoe配置Master模式三、CANoe配置Slave模式前言 随着智能电动汽车的行业的发展,车载以太网的应用越来越广泛,最近很多朋友在问CANoe Master/Slave模式如何设置,车载以太网物理层也有一项是测试Master/Slave模式…