Still having a hard time getting my head wrapped around the concept of staging as it applies to Git.
Can any analogies be made with SVN? What is the primary purpose
The main advantage of the staging area is that you can easily commit only part of the changes in a given file. (Using git add -p
for instance.) As far as I know, the only way to do a "partial" commit in SVN is on a per-file level, or by manually backing up a file and then temporarily reverting the changes you don't want to commit.
This is great if (like me) you're not a highly organised developer and want to be able to sort out changes into "neat" commits after the fact. This follows Git's general attitude of preferring to give you flexibility over enforcing strictness. If you don't need it, you can always just not use it, and use git commit -a ...
.
There are no analogies to be made with SVN because SVN is not Git and does not have such a concept.