Undo “git add <dir>”?
Solution 1:
To remove a directory and everything inside it from the index,
git rm --cached -r dir
The --cached
switch makes git rm
operate on the index only and not touch the working copy. The -r
switch makes it recursive.
Solution 2:
You will want to use git rm --cached -r <dir>
. this command will remove the staged directory contents from the index.
if the directory was already tracked you have to find new and old files manually and unstage them …
Probably run git reset <dir>
after that to reset existing (and already tracked) files inside the directory.
Update 2019:
Simply run git reset directory
, it will unstage all newly added files.
Solution 3:
Unstage directory
$ git reset <dir>
Unstages all the files and folders I staged with:
$ git add <dir>
Confirm directory unstaged
In order to confirm the removal of the directory and its contents from staging (ie "Changes to be committed"), run the below:
$ git status
or
$ git diff --staged --name-only
to confirm that none of the folders or files previously staged are still staged.