How do I remove a single file from the staging area (undo git add)?
Solution 1:
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.
Solution 2:
git rm --cached FILE
,
git rm -r --cached CVS */CVS
Solution 3:
git reset <file>
Works whether or not you have any previous commits.
Solution 4:
So, a slight tweak to Tim Henigan's answer: you need to use -- before the file name. It would look like this:
git reset HEAD -- <file>
Solution 5:
git reset filename.txt
If you have a modification in filename.txt , you added it to stage by mistake and you want to remove the file from staging but you don't want to lose the changes.