Comparing difference between files in git(Meld GUI tool)

GIT diff

If git status command is not enough for you and you want to find out what content of the files has been changed then you can do that using git diff

git diff command compares the committed files with the files that are not yet added to the staging area, if you want to compare the committed files with the staging area you need to run the command git diff command with —staged attribute, example below

Now can check what you have staged so for using the command git diff –cached

git diff --cached

There exist many different GUI tools under which you can view the GUI differences, run the below command to see the list of tools available and list of tools installed on your system.
Note : Some of these GIT diff tools are commercial product

git difftool --tool-help

We are going to use Meld tool as a git diff tool, for windows you can directly download the exe from their website, for ubuntu users you can run the below command

sudo apt-get install meld

Below commands can be used to set up meld tool on GIT as difftool and merge tool

git config --global diff.tool meld
git config --global difftool.meld.path "/usr/bin/meld"
git config --global difftool.prompt false
git config --global difftool.meld.cmd meld "$LOCAL" "$REMOTE"

git config --global merge.tool meld
git config --global mergetool.meld.path "/usr/bin/meld"
git config --global mergetool.prompt false

#confirm the path of meld using command : which meld

Now you can compare the unstaged and commited data using the meld difftool using below command:

git difftool
git difftool --staged #to Compare the staged data and the committed data

You use git difftool in exactly the same way as you use git diff. e.g.

git difftool <COMMIT_HASH> file_name
git difftool <BRANCH_NAME> file_name
git difftool <COMMIT_HASH_1> <COMMIT_HASH_2> file_name

Leave a Comment