Vi.
Vi.

Reputation: 38772

How can I use `git diff --color-words` outside a Git repository?

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.

Upvotes: 77

Views: 24053

Answers (5)

Vi.
Vi.

Reputation: 38772

git diff --color-words --no-index old.txt new.txt

Upvotes: 130

Jellicle
Jellicle

Reputation: 30316

Git version 1.9.1:

git diff --word-diff=color fileA fileB

Upvotes: 2

Pierre-Olivier Vares
Pierre-Olivier Vares

Reputation: 1769

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.

Upvotes: 2

Thomas
Thomas

Reputation: 2137

According to a comment from Jefromi you can just use

git diff --color-words file1 file2

outside of git repositories too.

Upvotes: 8

knittl
knittl

Reputation: 265996

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 …

Upvotes: 1

Related Questions