I've been trying to use Git on my personal projects for almost a month now.
I have a pretty good understanding of the basic set of commands and while its user experience isn't awesome, I still find myself liking Git more than the other VCS's I've used in the past.
However, one concept that I still don't think I have "gotten" is the real purpose of the Index. I have this feeling I'm not taking advantage of some benefit it is intended to bestow.
What is the purpose of having a staging area? Coming from SVN land, I'm so used to treating my working copy as my staging area and my snapshots for my commits being taken from this.
So, my question is:
What does this extra level of indirection give you? How has the Index improved or changed your normal workflow? Can you provide any scenarios where having the Index has allowed you to do something that would have been troublesome to do without it?