Hi all. This is a small patch with fix and addition to the man git-diff. This fix is obvious mistyping in man, there must be "..." instead of "..". And I added an example about how this can be used. The reason is: First, I don't know another reason to use a tree-ish with git diff. Second, the diff with empty tree is a real problem on what some people looking for solution (for various reasons): https://stackoverflow.com/questions/14564034/creating-a-git-diff-from-nothing/54946189#54946189 https://stackoverflow.com/questions/9765453/is-gits-semi-secret-empty-tree-object-reliable-and-why-is-there-not-a-symbolic/54945479#54945479 And the solutions are not simple nor obvious. So I think it will be helpful to mention it. --- a/Documentation/git-diff.txt +++ b/Documentation/git-diff.txt @@ -77,8 +77,16 @@ two blob objects, or changes between two files on disk. Just in case you are doing something exotic, it should be noted that all of the <commit> in the above description, except -in the last two forms that use ".." notations, can be any -<tree>. +in the last form, that use the "\..." notation, can be any +<tree>. For instance, if you want to make diffs against an empty +tree, you can create a tag pointing to the empty tree: + +'git tag' empty $('git hash-object' -t tree /dev/null) + +And use it for the 'git diff', for instance, to check a working tree +for whitespaces: + +'git diff' --check empty For a more complete list of ways to spell <commit>, see "SPECIFYING REVISIONS" section in linkgit:gitrevisions[7].