Is there a functionality in git where I could compare my local files to a git source control prior to committing changes?
Of-course you can do.
Using git diff
command without any arguments:
will compare each modified files in your file system against the files in the current checked-out branch (or) tag.
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.
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.
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.