Git Compare files before commit

mallows98 picture mallows98 · Jun 12, 2012 · Viewed 58.1k times · Source

Is there a functionality in git where I could compare my local files to a git source control prior to committing changes?

Answer

Karthik Bose picture Karthik Bose · Jun 12, 2012

Of-course you can do.

  1. Using git diffcommand without any arguments: will compare each modified files in your file system against the files in the current checked-out branch (or) tag.

  2. Using git diff <tag(or)branch name>: will compare each modified files in your file system against the files in the specified branch (or) tag.

  3. Using git diff <path/to/file_name (or) path/to/folder>: will compare the specified file or files in the folder in your file system against the current checked-out branch (or) tag.

  4. Using git diff <tag1(or)branch1 name> <tag2(or)branch2 name>: will compare all modified files between two branches / tags.

There are many options, you can pass to 'git diff' command to format your output. Here I've listed a few:

  • git diff --name-only : Show only names of changed files, not the contents.
  • git diff --name-status : Show only names and status of changed files.
  • git diff --cached (or --staged) : compares only the files which are staged/indexed.

for more information: execute git diff --help in your git bash.

FYI: git diff will generate output in command line. If you want to see the output in some visual tools, use git difftool.

Using git difftool: you can configure the git to use diff/merge tool to compare files. Checkout this link: use Winmerge inside of Git to file diff

You can pass all git diff arguments and options to git difftool as well.