git-diff-files - Linux


git-diff-files is a command used to compare the contents of the current index to the contents of the working tree or another tree object. It’s primarily used to determine the changes that need to be committed or staged for a commit.


git diff-files [--color=WHEN] [--name-status] [-z | --zero] [--exit-code] [--] <paths>...


  • –color=WHEN: Controls when to colorize the output. Default is ‘auto’.
  • –name-status: Display a summary of the changes in the format of <mode> <path>.
  • -z | –zero: Separate output records with a null byte instead of newline.
  • –exit-code: Exit with a non-zero status if any changes exist.
  • : Pathspec is terminated by ‘–‘.


Basic usage: Compare the current index to the working tree

git diff-files

Display a summary of changes:

git diff-files --name-status

Compare two specific files:

git diff-files -- path/to/file1 path/to/file2

Common Issues

  • Whitespace differences: If the working tree and index only differ by whitespaces, git-diff-files may not detect them. Use git diff instead.
  • Null byte output: When using --zero, make sure to process the output with a program that supports null-terminated input.


Combine with git add: To stage changes for a commit, use:

git add && git diff <changes> | git apply

Related Commands

  • git diff: Compare changes between different tree objects.
  • git status: Show the status of the working tree and index.
  • git checkout: Switch to a different tree object.