How to get diff working like git-diff?
This will do the +/-
rather than <
and >
.
diff -u file1 file2
Since GNU diffutils 3.4 the flag --color
has been added. Combining both makes the following:
diff --color -u file1 file2
The flag --color
also takes an argument, valid options are never
, always
, or auto
. Useful when you want to be more explicit on what needs to be done.
This is what I suggest and it's pretty close
diff -u FILE1 FILE2 | colordiff | less -R
colordiff
: You'll have to install thisbrew install colordiff
on my Mac.port install colordiff
on some Macs.sudo apt-get install colordiff
on Debian or Ubuntu- For other platforms, download the source from the main page or GitHub and follow the installation instructions
-R
: this tells Less to show colors instead of the raw codes.
I ultimately used -w
because I didn't want to see whitespace diffs.
diff -w -u FILE1 FILE2 | colordiff | less -R
Edit: As suggested by @Ciprian Tomoiaga in the comment, you can make this a function and put it in your ~/.bashrc
file too.
function gdiff () { diff -u $@ | colordiff | less -R; }
Install colordiff.
Update your ~/.colordiffrc (copying /etc/colordiffrc first, if necessary):
# be more git-like: plain=off newtext=darkgreen oldtext=darkred diffstuff=darkcyan
Use
colordiff -u file1 file2
for two files orcolordiff -ruN path1 path2
for recursively comparing paths.
It's not exactly the same, but it's very close.
You can also use git diff --no-index -- A B
(via manpage).