Gets the difference between some two commits

usage: git diff [<options>] [<commit>] [--] [<path>...]  or: git diff [<options>] --cached [<commit>] [--] [<path>...]  or: git diff [<options>] <commit> [--merge-base] [<commit>...]  <commit> [--] [<path>...]  or: git diff [<options>] <commit>... <commit>] [--] [<path>...]  or: git diff [<options>] <blob> <blob>] or: git diff [<options>] --no-index [--] <path> <path>] common diff options: -z output diff-raw with lines terminated with NUL. -p output patch format. -u synonym for -p. --patch-with-raw output both a patch and the diff-raw format. --stat show diffstat instead of patch. --numstat show numeric diffstat instead of patch. --patch-with-stat output a patch and prepend its diffstat. --name-only show only names of changed files. --name-status show names and status of changed files. --full-index show full object name on index lines. --abbrev=<n> abbreviate object names in diff-tree header and diff-raw. -R swap input file pairs. -B detect complete rewrites. -M detect renames. -C detect copies. --find-copies-harder try unchanged files as candidate for copy detection. -l<n> limit rename attempts up to <n> paths. -O<file> reorder diffs according to the <file>. -S<string> find filepair whose only one  side contains the string. --pickaxe-all show all files diff when -S is used and hit is found. -a --text treat all files  as text.Copy the code

Display filename and modification status, including (rename, add, delete, etc.) Example:

git diff 0287f50f s3acc594 --name-status
Copy the code

If you just need to get the file name:

git diff 0287f50f s3acc594 --name-only
Copy the code

Numstat shows the number of rows added or decreased