How can I view the output of `git show` in a diff viewer like meld, kdiff3, etc

Buttons840 picture Buttons840 · Jul 9, 2013 · Viewed 11.8k times · Source

There are many SO questions that show how to view the output of a git diff command in a diff viewer like meld using git difftool or otherwise. I am not asking about git diff though.

I want to see the output of git show <previous commit sha1> in a diff viewer like meld. How can I do this?

Answer

georgebrock picture georgebrock · Jul 9, 2013

You can use git difftool to show a single commit.

Say you want to see the commit with the sha1 abc123:

git difftool abc123~1 abc123

(~1 tells git to move to the previous commit, so abc123~1 is the commit before abc123)

If you use this regularly, you could make a custom git command to make it easier:

  1. Create a file called git-showtool somewhere on your $PATH with the following contents:

    git difftool $1~1 $1
    
  2. Give that file execute permissions:

    chmod +x ~/path/to/git-showtool
    
  3. Use the command git showtool <sha1 or tag or ...>

  4. Profit.