Need help with diff-so-fancy?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

so-fancy
13.9K Stars 310 Forks MIT License 538 Commits 21 Opened issues

Description

Good-lookin' diffs. Actually… nah… The best-lookin' diffs. :tada:

Services available

!
?

Need anything else?

Contributors list

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 cloning this repo and then putting the

diff-so-fancy
script in to your
$PATH
. The
lib/
directory will need to be kept relative to the core script.

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

Note: Windows users may need to install MinGW or the Windows subsystem for 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

The diff-so-fancy team

| Person | Role | | --------------------- | ---------------- | | @scottchiefbaker | Project lead | | @OJFord | Bug triage | | @GenieTim | Travis OSX fixes | | @AOS | Debian packager | | @Stevemao/@Paul Irish | NPM release team |

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

Alternatives

  • https://github.com/dandavison/delta

License

MIT

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.