加入CODE CHINA

· 不限速    · 不限空间    · 不限人数    · 私仓免费

免费加入
    README.md

    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 the NPM registry, brew, and as a package on Nix, in the Arch community repo, and 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 install MinGW or the Windows subsystem for Linux.

    Usage

    With git

    Configure git to use diff-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.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"

    With diff

    Use -u with diff for unified output, and pipe the output to diff-so-fancy:

    diff -u file_a file_b | diff-so-fancy

    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

    License

    MIT

    项目简介

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/so-fancy/diff-so-fancy

    发行版本 34

    v1.4.2

    全部发行版

    贡献者 78

    全部贡献者

    开发语言

    • Perl 80.7 %
    • Shell 19.3 %