Another option is to use git difftool , which is similar to git diff , but always uses a GUI tool (and by default offers you one).
When you use git diff , git uses the tool specified in diff.external .
When you use git difftool , git uses the tool specified in diff.tool .
I like to do diff.external unset, and then use git difftool when I need a diff GUI, and just git diff when I don't.
You can also disable the prompt for git difftool by sending:
git config --global difftool.prompt false
source share