Good-lookin' diffs. Actually… nah… The best-lookin' diffs.
License
so-fancy/diff-so-fancy
master
Name already in use
Code
- Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI.Learn more about the CLI.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Pleasesign in to use Codespaces.
Launching GitHub Desktop
If nothing happens,download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens,download GitHub Desktop and try again.
Launching Xcode
If nothing happens,download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Files
Permalinkdiff-so-fancy


diff-so-fancy strives to make your diffshuman readable instead of machine readable. This helps improve code quality and helps you spot defects faster.
Screenshot
Vanillagit diff vsgit anddiff-so-fancy
Install
Installation is as simple as cloning this repo and then putting thediff-so-fancy script in to your$PATH. Thelib/ directory will need to be kept relative to the core script.
diff-so-fancy is also available from theNPM registry,brew, and as a package onNix,Fedora, in theArch community repo,Gentoo Guru,ppa:aos for Debian/Ubuntu Linux.
Issues relating to packaging ('installation does not work', 'version is out of date', etc.) should be directed to those packages' own repositories/issue trackers where applicable.
Note: Windows users may need to installMinGW or theWindows subsystem for Linux.
Usage
With git
Configure git to usediff-so-fancy for all diff output:
git config --global core.pager"diff-so-fancy | less --tabs=4 -RFX"git config --global interactive.diffFilter"diff-so-fancy --patch"
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.uitruegit 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"
With diff
Use-u withdiff for unified output, and pipe the output todiff-so-fancy:
diff -u file_a file_b| diff-so-fancyOptions
markEmptyLines
Should the first block of an empty line be colored. (Default: true)
git config --bool --global diff-so-fancy.markEmptyLinesfalsechangeHunkIndicators
Simplify git header chunks to a more human readable format. (Default: true)
git config --bool --global diff-so-fancy.changeHunkIndicatorsfalsestripLeadingSymbols
Should the pesky+ or- at line-start be removed. (Default: true)
git config --bool --global diff-so-fancy.stripLeadingSymbolsfalseuseUnicodeRuler
By default, the separator for the file header uses Unicode line-drawing characters. If this is causing output errors on your terminal, set this tofalse to use ASCII characters instead. (Default: true)
git config --bool --global diff-so-fancy.useUnicodeRulerfalserulerWidth
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 widthThe 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 thenext branch. We are also looking for any feedback or ideas on how to makediff-so-fancy evenfancier.
Other documentation
Alternatives
License
MIT
About
Good-lookin' diffs. Actually… nah… The best-lookin' diffs.


