While working with Git it is often required to check the changes between different areas.
Probably everyone knows the git diff, that shows the changes between the Working Directory and the Staging Area (git diff unstaged).
But it is also often needed to shows the changes between the Staging Area and the HEAD (git diff staged) or between the Working Directory and the HEAD (git diff staged and unstaged). (more…)