How can I use `git diff --color-words` outside a G

2020-05-14 05:09发布

How can I get output like in git diff --color-words, but outside Git?

Closest thing is wdiff -t, but it underlines/inverts things instead of using green/red colours and does not allow specifying my whitespace regex.

5条回答
Juvenile、少年°
2楼-- · 2020-05-14 05:22

Git version 1.9.1:

git diff --word-diff=color fileA fileB

查看更多
3楼-- · 2020-05-14 05:24

git diff --color-words --no-index

查看更多
Melony?
4楼-- · 2020-05-14 05:24

If I'm inside a git repository (git v2.3.3) :

  • git diff --color-words doesn't work (no output)
  • git diff --no-index doesn't accept --color-words nor --color arguments

Using wdiff is possible, configured to use colors, rather than underlined :

wdiff -n \
  -w $'\033[30;31m' -x $'\033[0m' \
  -y $'\033[30;32m' -z $'\033[0m' \
  … | less -R

Source : https://www.gnu.org/software/wdiff/manual/html_node/wdiff-Examples.html (modified to use foreground colors rather than background colors)

Hope it helps.

查看更多
做个烂人
5楼-- · 2020-05-14 05:27

you can say git diff --color=always --color-words, which will give you the color escape codes in the output. you are going to have some shell to interpret the color codes though …

查看更多
Evening l夕情丶
6楼-- · 2020-05-14 05:40

According to a comment from Jefromi you can just use

git diff --color-words file1 file2

outside of git repositories too.

查看更多
登录 后发表回答