传说中最好用的git diff格式化显示工具:diff-so-fancy » 荒野无灯weblog

Keep It Simple, Stupid.

荒野无灯weblog

传说中最好用的git diff格式化显示工具:diff-so-fancy

这是一个程序员相见恨晚的工具。 它实现的功能很简单,但是非常实用。

通常git 默认的git diff 命令只支持显示行级差异,而这个 diff-so-fancy 基本上可以做到字符串级别的,随便放一张图感受一下吧:

安装方法:

npm install -g diff-so-fancy
#或
yarn install -g diff-so-fancy

如果你和我一样在Arch Linux下面工作,更简单:

sudo pacman -S diff-so-fancy

配色改进(经我测试在windows msys git 下面最好不要用下面的配置):

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 diff默认使用diff-so-fancy 来格式化输出:

git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"

或者,你想保留原有的git diff,可以弄一个别名,如dsf, 然后 直接 git dsf 就OK了:

git config --global alias.dsf '!f() { [ -z "$GIT_PREFIX" ] || cd "$GIT_PREFIX" '\
'&& git diff --color "$@" | diff-so-fancy  | less --tabs=4 -RFX; }; f'

更多信息和玩法请稳步 项目主页: https://github.com/so-fancy/diff-so-fancy

PS:如果你发现有好玩的东西,欢迎推荐给我。

--EOF

Tagged in :

All Comments (3)
Gravatar image
Gravatar image
Jacksgong
确实不错,谢谢~
Gravatar image
依云
git show|diff --word-diff=color 具体什么算一个 word 可以配置的。 另外还有 wdiff 和 colordiff 可以用来处理 git 之外的 diff。dsf 好像对非 git 的 diff 的支持不好。
Gravatar image
荒野无灯
diff: unrecognized option '--word-diff=color'