Web lists-archives.com

strange behavior of git diff-index


git diff-index is giving me incorrect information, however if I run git diff, then git diff-index again it will show the correct information.
The steps are the following:
$ git diff-index --name-only HEAD
git appears to list all files in the project irrespective if they modified or not
$ git diff
$ git diff --cached
will show nothing. So I don't have any modification. 
Now strangely if I run git diff-index, it will also show nothing which is correction behavior.

my git version is 2.7.4
Any explanation?