I am learning Git after using a simpler version control tool where a commit just saved every changed file. In Git I have to git add files before git commit, and a file I have already added sometimes shows up as both staged and modified in git status.
What is the staging area for, what exactly does git add do, and is there any reason not to just use git commit -a every time?




