30k+ Star的开源git diff分页工具,delta让终端diff也能高亮和并排显示

delta 是一个用于 git、diff 和 grep 输出的语法高亮分页工具,在 GitHub 上获得了 30,867 个 Star。

正文顶部截图

日常工作里,diff 是开发者最常查看的内容之一。git diff 的默认输出只有红绿两色,呈现的信息有限。delta 把 diff 的输出体验提升了一个档次,给代码变更区域加上了语法高亮、行号、并排对比等功能。

README区域截图

delta 的核心思路是让 diff 输出更易读。它在默认 git diff 的基础上,增加了以下能力:

  • 语法高亮,与 bat 使用相同的高亮主题,支持深色和浅色终端
  • 词级别的差异高亮,基于 Levenshtein 编辑推理算法实现
  • 并排视图,左右两栏对比变更前后代码,自动换行长行
  • 行号显示
  • 使用 n 和 N 键在 diff 区块之间快速跳转
  • 改进的合并冲突展示
  • git blame 输出增强,支持语法高亮和超链接格式
  • 对 grep、rg 等搜索工具的输出去做语法高亮
  • 支持 git 的 --color-moved 特性
  • 代码可直接从 diff 中复制,默认移除 +/- 标记
  • diff-highlight 和 diff-so-fancy 模拟模式
  • 提交哈希可渲染为终端超链接
  • 超过 20 个样式化要素支持前景色、背景色、字体属性自定义

安装 delta 后,在 ~/.gitconfig 中添加配置即可启用:

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    navigate = true
    dark = true

[merge]
    conflictStyle = zdiff3

也可以通过命令行直接设置:

git config --global core.pager delta
git config --global interactive.diffFilter 'delta --color-only'
git config --global delta.navigate true
git config --global delta.dark true
git config --global merge.conflictStyle zdiff3

在大多数包管理器中,包名为 “git-delta”,可执行文件是 delta。

delta 的语法高亮主题与 bat 共享,可以运行 delta --show-syntax-themes --darkdelta --show-syntax-themes --light 预览所有可用主题。

合并冲突展示是一个亮点。默认的冲突标记在多文件冲突时不容易分辨,delta 重新组织了冲突区域的视觉呈现,让三方合并的冲突来源更清晰。

对于 git blame 输出,delta 同样做语法高亮,并且支持将提交哈希格式化为托管平台(GitHub、GitLab、SourceHut、Codeberg)的超链接。

delta 还支持对 grep 类命令的输出做语法高亮。git grep、ripgrep 等工具的搜索结果经过 delta 处理后,匹配关键词和文件路径都有对应的着色。

delta 的功能很多,可以运行 delta -h 查看简要帮助,或者 delta --help 阅读完整手册。项目维护者是 @dandavison 和 @th1000s。

查看简要帮助,或者delta --help` 阅读完整手册。项目维护者是 @dandavison 和 @th1000s。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐