git add for uncommitted changes with:
git reset <file>
That will remove the file from the current index (the “about to be committed” list) without changing anything else.
To unstage all changes for all files:
In old versions of Git, the above commands are equivalent to
git reset HEAD <file> and
git reset HEAD respectively, and will fail if
HEAD is undefined (because you haven’t yet made any commits in your repository) or ambiguous (because you created a branch called
HEAD, which is a stupid thing that you shouldn’t do). This was changed in Git 1.8.2, though, so in modern versions of Git you can use the commands above even prior to making your first commit:
“git reset” (without options or parameters) used to error out when
you do not have any commits in your history, but it now gives you
an empty index (to match non-existent commit you are not even on).
Documentation: git reset