Show changes to tracked files.
# To show unstaged, uncommitted changes:
git diff
# To show all uncommitted changes (including staged ones):
git diff HEAD
# To show only staged (added, but not yet committed) changes:
git diff --staged
# To show changes from all commits since a given date/time (a date expression, e.g. "1 week 2 days" or an ISO date):
git diff 'HEAD@{3 months|weeks|days|hours|seconds ago}'
# To show only names of changed files since a given commit:
git diff --name-only <commit>
# To output a summary of file creations, renames and mode changes since a given commit:
git diff --summary <commit>
# To create a patch file:
git diff > <target_file>.patch
# To compare a single file between two branches or commits:
git diff <branch_1>..<branch_2> [--] <path/to/file>
# To compare different files from the current branch to other branch:
git diff <branch>:<path/to/file2> <path/to/file>