tags:

views:

76

answers:

2

I have just performed git add --interactive, so the index version of some files is different than the working-directory versions. Instead of doing git diff --cached, I want to actually dump the contents of each file in the index, but I can't find a command to do that. I should think that there would be something like git show INDEX:filename..., but "INDEX" is not a valid object name.

I was able to do git ls --cached, then git show <hash>, but there should be a more straightforward method to see what you are committing.

+14  A: 

Yes, simply:

git show :filename

If you have multiple index versions (such as in a merge conflict situation) you can view versions in different index slots with:

git show :1:filename
git show :2:filename
git show :3:filename

In most other situations only slot 0 is populated and :0:filename is the identifer for the cached version of the file. :filename is a shorthand for :0:filename.

Charles Bailey
+3  A: 

If you want to test the version of project that you have stashed in the index, you can use git stash --keep-index (see "Testing partial commits" section in git-stash manpage).

Jakub Narębski