I wrote:
Try this, let me know what you think. I called the changes in the
working directory "Local uncommitted changes, not checked in to index"
and the changes in the index "Local changes checked in to index but
not committed". If you prefer some other wording, let me know. I
made the working directory commit red (as before) and the index commit
magenta, as being between red and blue. The index commit gets a fake
SHA1 id of 00..001.
I should add that I'm sure that gitk won't yet do the right thing if
there are files in the index at other than stage 0, or if the local
changes are the result of an incomplete merge. (In the latter case I
suppose one or other of the fake commits should have multiple parents,
but I don't have the infrastructure to add fake commits with multiple
parents yet.)
Paul.