When I want to get git diff files, I found someone use
git diff-index --cached --diff-filter=AM --name-only HEAD
and if I use
diff-index is a lower level operation that does less but is much faster because it doesn't look at the content, it only checks metadata like timestamps. Only Linux you can verify this with something like:
strace -f -e file -o diff-index.log git diff-index HEAD
wc diff-index.log
less diff-index.log
Forget about diff-index unless you have some git performance problem to solve.
https://git-scm.com/docs/git-update-index#_using_assume_unchanged_bit
https://public-inbox.org/git/loom.20160331T143733-916@post.gmane.org/
git diff-index is a diff against the index or working tree:
Compares the content and mode of the blobs found in a tree object with the corresponding tracked files in the working tree, or with the corresponding paths in the index
git diff is more versatile and can compare two files, or two commits, or (like diff-index) a tree and the index.
In your case, a diff HEAD
would indeed diff HEAD against the index, which diff-index
does too.