Search code examples
gitversion-controldiffdvcs

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


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?


Solution

  • 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.