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.

Foi útil?

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.

Use find and xargs:

find dir -type f | xargs git reset
$ 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top