In HEAD
(the latest commit), I have a file named foo
. In my current working tree, I renamed it to bar
, and also edited it.
I want to git diff
between foo
in HEAD
, and bar
in my current working tree.
In HEAD
(the latest commit), I have a file named foo
. In my current working tree, I renamed it to bar
, and also edited it.
I want to git diff
between foo
in HEAD
, and bar
in my current working tree.
I believe using --no-index
is what you're looking for:
git diff [<options>] --no-index [--] <path> <path>
as mentioned in the git manual:
This form is to compare the given two paths on the filesystem. You can omit the
--no-index
option when running the command in a working tree controlled by Git and at least one of the paths points outside the working tree, or when running the command outside a working tree controlled by Git.
Specify the paths explicitly:
git diff HEAD:full/path/to/foo full/path/to/bar
Check out the --find-renames
option in the git-diff
docs.
Credit: twaggs.
git diff <path> <path>
will compare two working-tree files as long as at least one of them is not in a git repo or the command is run from outside of a git repo. If you want to ensure git knows you are only comparing files in the working-tree (that is, on files in your directory rather than files added or commited to git), use git --no-index <path> <path>
If you are using tortoise git you can right-click on a file and git a diff by: Right-clicking on the first file and through the tortoisegit submenu select "Diff later" Then on the second file you can also right-click on this, go to the tortoisegit submenu and then select "Diff with yourfilenamehere.txt"