diff-so-fancy

Good-lookin' diffs. Actually… nah… The best-lookin' diffs. ?

Github星跟蹤圖

diff-so-fancy Circle CI build TravisCI build AppVeyor build

diff-so-fancy strives to make your diffs human readable instead of machine readable. This helps improve code quality and helps you spot defects faster.

Screenshot

Vanilla git diff vs git and diff-so-fancy

diff-highlight vs diff-so-fancy

Install

Installation is as simple as downloading the diff-so-fancy script to a directory in your path.
Windows users may need to install MinGW or the Windows subsystem for Linux.

diff-so-fancy is also available from NPM, Nix, brew, and as a package on Arch Linux.

Usage

Configure git to use diff-so-fancy for all diff output:

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

Improved colors for the highlighted bits

The default Git colors are not optimal. The colors used for the screenshot above were:

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.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"

Options

markEmptyLines

Should the first block of an empty line be colored. (Default: true)

git config --bool --global diff-so-fancy.markEmptyLines false

changeHunkIndicators

Simplify git header chunks to a more human readable format. (Default: true)

git config --bool --global diff-so-fancy.changeHunkIndicators false

stripLeadingSymbols

Should the pesky + or - at line-start be removed. (Default: true)

git config --bool --global diff-so-fancy.stripLeadingSymbols false

useUnicodeRuler

By default, the separator for the file header uses Unicode line-drawing characters. If this is causing output errors on your terminal, set this to false to use ASCII characters instead. (Default: true)

git config --bool --global diff-so-fancy.useUnicodeRuler false

rulerWidth

By default, the separator for the file header spans the full width of the terminal. Use this setting to set the width of the file header manually.

git config --global diff-so-fancy.rulerWidth 47    # git log's commit header width

Contributing

Pull requests are quite welcome, and should target the next branch. We are also looking for any feedback or ideas on how to make diff-so-fancy even fancier.

Other documentation

License

MIT

主要指標

概覽
名稱與所有者so-fancy/diff-so-fancy
主編程語言Perl
編程語言Shell (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2016-02-04 11:32:08
推送於2025-05-06 18:47:34
最后一次提交2023-06-09 13:07:02
發布數43
最新版本名稱v1.4.4 (發布於 )
第一版名稱v0.1.0 (發布於 2016-02-08 21:18:14)
用户参与
星數17.6k
關注者數114
派生數335
提交數727
已啟用問題?
問題數290
打開的問題數27
拉請求數160
打開的拉請求數5
關閉的拉請求數46
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?