不喜欢 diff 么?试试 Meld 吧
创始人
2024-03-02 04:43:27
0

Meld 是一个可视化 diff 工具,它可让你轻松比较和合并文件、目录、Git 仓库等的更改。

Meld 是我处理代码和数据文件的基本工具之一。它是一个图形化的 diff 工具,因此,如果你曾经使用过 diff 命令并难以理解输出,那么 Meld 可以为你提供帮助。

这是该项目网站的精彩描述:

“Meld 是面向开发人员的可视化 diff 和合并工具。Meld 可以帮助你比较文件、目录和版本控制的项目。它提供文件和目录的双向和三向比较,并支持许多流行的版本控制系统。”

“Meld 可以帮助你检查代码更改并了解补丁。它甚至可以帮助你弄清你一直在避免的合并中发生了什么。”

你可以使用以下命令在 Debian/Ubuntu 系统(包括 Raspbian)上安装 Meld:

$ sudo apt install meld

在 Fedora 或类似产品上:

$ sudo dnf install meld

Meld 是跨平台的,它有一个使用 Chocolately 包管理器的 Windows 安装包。尽管它在 macOS 上不受官方支持,但有可用于 Mac 的版本,你可以使用 Homebrew 安装:

$ brew cask install meld

有关其他系统,请参见 Meld 的主页。

Meld 对比 diff 命令

如果你有两个相似的文件(也许一个是另一个的修改版本),并想要查看它们之间的更改,那么可以在终端中运行 diff 命令查看它们的区别:

diff output

此例显示了 conway1.pyconway2.py 之间的区别。表明我:

  • 删除了释伴和第二行
  • 从类声明中删除了 (object)
  • 为类添加了 docstring
  • 在方法中交换了 aliveneighbours == 2 的顺序

这是使用 meld 命令的相同例子。你可以在命令行中运行以下命令进行相同的比较:

$ meld conway1.py conway2.py

Meld output

Meld 更清晰!

你可以轻松查看并单击箭头(左右都行)合并文件之间的更改。你甚至可以实时编辑文件(在输入时,Meld 可以用作具有实时比较功能的简单文本编辑器)—只是要记得在关闭窗口之前保存。

你甚至可以比较和编辑三个不同的文件:

Comparing three files in Meld

Meld 的 Git 感知

希望你正在使用 Git 之类的版本控制系统。如果是这样,那么你的比较就不是在两个不同文件之间进行,而是要查找当前文件与 Git 历史文件之间的差异。Meld 理解这一点,因此,如果你运行 meld conway.pyconway.py 在 Git 中),它将显示自上次 Git 提交以来所做的更改:

Comparing Git files in Meld

你可以看到当前版本(右侧)和仓库版本(左侧)之间的更改。你可以看到,自上次提交以来,我删除了一个方法,并添加了一个参数和一个循环。

如果你运行 meld .,你将看到当前目录(如果位于仓库的根目录,就是整个仓库)中的所有更改:

Meld . output

你会看到一个文件被修改了,另一个文件未加入版本控制(这意味着它对 Git 是新的,因此在比较之前,我需要 git add 添加该文件),以及许多其他未修改的文件。顶部的图标提供了各种显示选项。

你还可以比较两个目录,这有时很方便:

Comparing directories in Meld

结论

即使是普通用户也会觉得 diff 的比较难以理解。我发现 Meld 提供的可视化在找出文件之间的更改方面有很大的不同。最重要的是,Meld 有一些有用的版本控制认知,可以帮助你在不考虑太多内容的情况下对 Git 提交进行比较。快来试试 Meld,并轻松解决问题。


本文最初发表在 Ben Nuttall 的 Tooling blog 上,并经允许重新使用。


via: https://opensource.com/article/20/3/meld

作者:Ben Nuttall 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

6月19日前海开源国家比较...
金融界2025年6月19日消息,前海开源国家比较优势混合A(001...
2025-06-19 20:41:54
高考报志愿别只看一个AI,...
2025年高考,AI凭借强大的数据处理和智能分析能力,成为志愿填报...
2025-06-17 11:42:12
JDK代理和CGLib代理...
JDK代理: 原理:拦截器+反...
2025-06-01 00:52:04
git快速入门(2)__版...
实验一 修改内容回退实验目的:通过实验理解三个区的区...
2025-05-31 18:58:58
文心一言 vs. GPT-...
文心一言 vs. GPT-4 —— 全面横向比较 3月15日凌晨&...
2025-05-31 08:39:17
2023年天津市逆向re2...
2023年天津市逆向re2.exe解析(较难) 1.拖进IDA里进...
2025-05-31 02:13:01

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...