How to improve git's diff highlighting?

后端 未结 3 604
时光说笑
时光说笑 2020-12-14 20:59

The output of git diff is optimized for code which tends to be one statement per line whereas text can (if authors like me are too lazy to use line breaks) caus

3条回答
  •  长情又很酷
    2020-12-14 21:08

    The word-diff suggested in the other answer isn't exactly what gitlab/github do. To get same effect, you can use diff-highlight script that is distributed with git.

    1. First find path to diff-highlight script. It varies between systems, and is not usually in $PATH. You can find it with your package manager, for example:

      1. Fedora: rpm -ql git | grep diff-highlight
      2. Debian/Ubuntu/Mint: dpkg -L git | grep diff-highlight
      3. Archlinux: pacman -Ql git | grep diff-highlight
    2. Edit ~/.gitconfig, and add to the [pager] section the following (substitute the path):

      [pager]
          # diff-highlight is script provided by git that shows word-by-word diff
          log  = perl /usr/share/git/diff-highlight/diff-highlight | less
          show = perl /usr/share/git/diff-highlight/diff-highlight | less
          diff = perl /usr/share/git/diff-highlight/diff-highlight | less
      

      I'm using perl here instead of calling the script directly because some distros, it seems, do not set executable bit on the script. IMO this is a package bug which should be reported. Anyway, this answer should work disregarding that.

    Now log, diff, show commands should show difference word-by-word. Screenshot:

提交回复
热议问题