Diff

local changes which are not added to commit but untracked files
git status

local changes which are added and not checked in locally
git diff

differences local checked in to server
git diff master origin/master

graphical diff
In case you happen to run somewhere where you have an X-Server gitk

or

git diff R194..R194c | kompare -

I installed this in /usr/share/meld/vc:

git.py

I installed this under /home/&lt;user&gt;

git-diff.py:

import sys import os os.system('meld "%s" "%s"' % (sys.argv[2], sys.argv[5]))
 * 1) !/usr/bin/python

now if we tell git to use meld it should work:

git config --global diff.external /home/&lt;user&gt;/git-diff.py

diff between two tags
git diff R194..R194c

to see only which files changed

git diff --name-only R194..R194c

diff between two tags of a specific file

git diff &lt;tagX&gt; &lt;tagZ&gt; -- path/filename

diff of same file between two tags
git diff : :

git diff R194:src/ic_NativeImpl/NativeImpl_IrRc/NativeImpl_IrRc_md_MIPSSMP86XX_WEGENER_LINUX/NativeImpl_IrRc_md_MIPSSMP86XX_WEGENER_LINUX.c R197_3:src/ic_NativeImpl/NativeImpl_IrRc/NativeImpl_IrRc_md_MIPSSMP86XX_WEGENER_LINUX/NativeImpl_IrRc_md_MIPSSMP86XX_WEGENER_LINUX.c

without creating a local branch
git diff --name-only -b &lt;branch&gt; &lt;tag&gt; git diff -b &lt;branch&gt; &lt;tag&gt;

creating a local branch
git checkout -b &lt;local_branch_name&gt; &lt;branch_name&gt; git branch git diff --name-only &lt;tag&gt; git diff &lt;tag&gt;

e.g.

git checkout -b local_R194b origin/R194bgit branch git diff --name-only R194cgit diff R194c

from master branch
git diff --name-only origin/R194b R194c git diff origin/R194b R194c