diff is used to show the changes between two versions of the same file. Colorful diff on Command Line is Great to Read & There is Easy Way. man diff
will bring the default diff utility’s manual page. We can use this tool, but there is an existing easy way. First we will talk about the ways which many like to use, next we will talk about the easy way we like.
First, for this guide, create two files – file1.txt
and file2.txt
and fill up with a bit different versions of content on the files. Normal usage will be :
1 | diff file1.txt file2.txt |
Adding flags will make them better :
---
1 2 3 | diff -c file1.txt file2.txt diff -u file1.txt file2.txt diff -e file1.txt file2.txt |
Definitely, we can pipe to text file :
1 | diff -e file1.txt file2.txt > my-ed-script.txt |
And last but not the least for plain diff, these are two versions of a code as gist for our Arduino breathing LED :
1 2 | https://gist.githubusercontent.com/AbhishekGhosh/dbedaf3d14f3b513b24c/raw/c2f59b93d00c0728e04f1f082aceea3697929043/Breathing-LED-Arduino.cc https://gist.githubusercontent.com/AbhishekGhosh/dbedaf3d14f3b513b24c/raw/6935a09e8b709881d0574dad18be22c00a5e54c5/Breathing-LED-Arduino.cc |
We can compare them using this format :
1 | diff <(curl http://example.com/file/one.js) <(curl http://example.com/file/two.js) |
Live example :
1 | git diff <(curl https://gist.githubusercontent.com/AbhishekGhosh/dbedaf3d14f3b513b24c/raw/c2f59b93d00c0728e04f1f082aceea3697929043/Breathing-LED-Arduino.cc) <(curl https://gist.githubusercontent.com/AbhishekGhosh/dbedaf3d14f3b513b24c/raw/6935a09e8b709881d0574dad18be22c00a5e54c5/Breathing-LED-Arduino.cc) |
Colorful diff on Command Line : Known Ways
colordiff is another program, which we can install using :
1 2 3 4 | # deb GNU/Linux sudo apt-get install colordiff # OS X brew install colordiff |
We need to use unix pipe to use this tool. For example :
1 | diff file1.txt file2.txt | colordiff |
Another way is using vi :
1 | diff file1.txt file2.txt | vim -R - |
Colorful diff on Command Line : Our Way, Best Way
All of us have git installed, it is quite common on a server to have git installed. This is less known but quite robust feature to use git dif
to get colorful diff on command line :
1 | git diff file1.txt file2.txt |
it is, indeed quite neat :
Most funny, we have a manual too :
1 | man git diff |
Some commands with flags for your ready-made tests :
1 2 3 4 | git diff --no-color feed.xml test.xml git diff --histogram feed.xml test.xml git diff --raw feed.xml test.xml git diff --minimal feed.xml test.xml |