diff-so-fancy
致力于使您的差异具有人类可读性,而不是机器可读性。这有助于提高代码质量并帮助您更快地发现缺陷。
Vanilla git diff
与git
以及diff-so-fancy
只需将最新版本中的diff-so-fancy
脚本复制到您的$PATH
中即可。或者,要测试开发功能,您可以克隆此存储库,然后将diff-so-fancy
脚本(符号链接将起作用)放入$PATH
中。 lib/
目录需要与核心脚本保持相对关系。
如果您使用的是 zgenom 或 oh-my-zsh 等 ZSH 框架,请参阅 Zsh 插件对 diff-so-fancy 的支持以获取详细的安装说明。
diff-so-fancy
也可以从 NPM 注册表、brew 中作为 Nix、Fedora 上的软件包、Arch extra 存储库中的软件包以及 Debian/Ubuntu Linux 上的 ppa:aos 获得。
与打包相关的问题(“安装不起作用”、“版本已过时”等)应直接提交给这些包自己的存储库/问题跟踪器(如果适用)。与打包相关的问题(“安装不起作用”、“版本已过时”等)应直接提交给这些软件包的存储库/问题跟踪器(如果适用)。
注意: Windows 用户可能需要安装 MinGW 或适用于 Linux 的 Windows 子系统。
配置 git 对所有 diff 输出使用diff-so-fancy
:
git config --global core.pager " diff-so-fancy | less --tabs=4 -RF "
git config --global interactive.diffFilter " diff-so-fancy --patch "
默认的 Git 颜色不是最佳的。上面的屏幕截图使用的颜色是:
git config --global color.ui true
git config --global color.diff-highlight.oldNormal " red bold "
git config --global color.diff-highlight.oldHighlight " red bold 52 "
git config --global color.diff-highlight.newNormal " green bold "
git config --global color.diff-highlight.newHighlight " green bold 22 "
git config --global color.diff.meta " 11 "
git config --global color.diff.frag " magenta bold "
git config --global color.diff.func " 146 bold "
git config --global color.diff.commit " yellow bold "
git config --global color.diff.old " red bold "
git config --global color.diff.new " green bold "
git config --global color.diff.whitespace " red reverse "
将-u
与diff
一起使用以实现统一输出,并将输出通过管道传输到diff-so-fancy
:
diff -u file_a file_b | diff-so-fancy
它还支持 diff 的递归模式,以-r
或--recursive
作为第一个参数
diff -r -u folder_a folder_b | diff-so-fancy
diff --recursive -u folder_a folder_b | diff-so-fancy
空行的第一个块是否应该着色。 (默认值:true)
git config --bool --global diff-so-fancy.markEmptyLines false
将 git header 块简化为更易于理解的格式。 (默认值:true)
git config --bool --global diff-so-fancy.changeHunkIndicators false
是否应该删除行开头的烦人的+
或-
。 (默认值:true)
git config --bool --global diff-so-fancy.stripLeadingSymbols false
默认情况下,文件头的分隔符使用 Unicode 画线字符。如果这导致终端上出现输出错误,请将其设置为false
以改用 ASCII 字符。 (默认值:true)
git config --bool --global diff-so-fancy.useUnicodeRuler false
默认情况下,文件头的分隔符跨越终端的整个宽度。使用此设置可以手动设置文件头的宽度。
git config --global diff-so-fancy.rulerWidth 80
人 | 角色 |
---|---|
@斯科特酋长贝克 | 项目负责人 |
@OJ福特 | 错误分类 |
@GenieTim | 特拉维斯 OSX 修复 |
@AOS | Debian 打包器 |
@Stevemao/@保罗·爱尔兰 | NPM发布团队 |
拉取请求非常受欢迎,并且应该针对next
分支。我们也在寻找有关如何使diff-so-fancy
变得更精美的任何反馈或想法。
麻省理工学院