How do I remove a single file from the staging area (undo git add)?

git, staging, version-control

Solution

If I understand the question correctly, you simply want to "undo" the `git add` that was done for that file.

If you need to remove a single file from the staging area, use

`git reset HEAD -- <file>`

If you need to remove a whole directory (folder) from the staging area, use

`git reset HEAD -- <directoryName>`

Your modifications will be kept. When you run `git status` the file will once again show up as modified but not yet staged.

See the `git reset` man page for details.

Problem

Situation: I have a Git repository with files already in the index. I make changes to several files, open Git and add these files to my staging area with "git add ." Question: How do I remove one of those files from the staging area but not remove it from the index or undo the changes to the file itself?

Original source

Related problems