How do I undo ‘git add’ before commit?

Undo 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:

git reset

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

Leave a Comment