Pergunta
I mistakenly added files using the command "git add dir". I have not yet run "git commit". Is there a way to remove this dir and everything contained within it from the commit?
I have tried git reset dir
, but it didn't work. Apparently git reset file
is the way to undo it. But I have so many files and so little time.
Solução
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.
Outras dicas
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.
$ git reset <dir>
Unstages all the files and folders I staged with:
$ git add <dir>
The above was confirmed with:
$ git status
or
$ git diff --staged --name-only
after the git add command in order to confirm the files and folders that were "Changes to be committed".
After running the git reset command I used:
$git diff --staged --name-only
to confirm that none of the folders or files previously staged were still staged.