[原创] 美化git diff命令在终端的显示效果

本文适用的环境:
MacOS、Ubuntu(仅在20.04.6 LTS上做了测试)
git diff命令在终端执行时,其显示效果是:
* 按文件分块:每个有改动的文件单独一段,从上到下依次展示。
* 统一在一个终端窗口内纵向滚动,默认不会并排显示左右对比。
我个人觉得,这种显示方式,不如"左右对比"的diff形式直观。
所以,有没有办法把git diff命令的输出,改造成更美观的形式呢?

在MacOS下,可以安装 git-delta,再稍加配置,就可以让终端里的 git diff 命令显式美观得多。
先看最终效果:
git diff
文章来源:https://www.codelast.com/

这个效果是怎么实现的呢?按如下步骤操作——
以MacOS为例,安装:

brew install git-delta

全局配置到git,修改 ~/.gitconfig 文件,添加如下内容:

[core]
    pager = delta
[interactive]
    diffFilter = delta --color-only
[delta]
    syntax-theme = Monokai Extended
    line-numbers = true
    side-by-side = true
各配置项含义如下:

 [core] pager = delta

 把 Git 的“分页器”改成 delta

 影响的命令:如 git diffgit log -p 等需要分页显示的输出

 作用:这些命令的输出不再通过 less,而是先经过 delta 进行美化后再显示

 [interactive] diffFilter = delta --color-only

 专门给交互式操作(如 git add -p)设置 diff 过滤器

 Git 在交互式展示每一块 diff 时,先把原始 diff 丢给 delta --color-only

 -color-only:只加颜色高亮,不改行号、不改文本结构,确保交互命令正常工作

 [delta] syntax-theme = Monokai Extended

 设置 delta 的语法高亮主题为 Monokai Extended

 影响代码内容的配色风格(关键字、字符串、注释等的颜色方案)

 [delta] line-numbers = true

 在 delta 输出中展示行号

 一般会在左侧或边栏显示老/新文件的行号,方便定位

 [delta] side-by-side = true

 使用左右并排对比模式显示 diff

 左侧通常是旧版本,右侧是新版本,效果类似 GitHub PR 的对比视图

其中,你可以用 delta --list-syntax-themes 命令查看所有内置主题,并设置到 syntax-theme 配置项中。

文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤ 
转载需注明出处:codelast.com 
感谢关注我的微信公众号(微信扫一扫):
wechat qrcode of codelast
以及我的微信视频号:

 

发表评论