How do I remove a directory subtree from the staging area?

48,536

Solution 1

In #git, you said you unintentionally added a directory that should have been ignored, so run

git rm --cached -r directory-name

to recursively remove the tree rooted at directory-name from the index.

Don't forget to update .gitignore!

Solution 2

You can just use the command:

git reset

Solution 3

Make sure you remember to put the s in --global core.excludesfile .gitignore.txt

excludesfile vs excludefile

Maybe this will save someone else the hour I lost...

Share:
48,536
Acorn
Author by

Acorn

Updated on July 05, 2022

Comments

  • Acorn
    Acorn almost 2 years

    I made a new repository, and ran git add -A. I then noticed that there was a folder containing about 100 files that shouldn't have been included, so I added it to .gitignore.

    How do I now clear the staging area so that I can add all my files again taking into account the updated .gitignore?

  • Acorn
    Acorn about 13 years
    fatal: Failed to resolve 'HEAD' as a valid ref. I assume there's nothing to reset to yet?
  • Matthew Flaschen
    Matthew Flaschen about 13 years
    @Acorn, right. I didn't realize you haven't committed at all to the new repo yet.
  • Jim Mitchener
    Jim Mitchener about 13 years
    In that case I'd just rm -rf .git && git init . and start over.
  • Jonathan Allard
    Jonathan Allard over 11 years
    Would -r . be simpler and do the same thing?
  • Alexander Mills
    Alexander Mills almost 9 years
    can you mention why the --cached is necessary? I don't see why it is
  • Greg Bacon
    Greg Bacon over 8 years
    @AlexMills The question specified a directory that had been added using git add to the staging area, also known as the cache or index. According to the git rm documentation on --cached: “Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.”
  • Black
    Black almost 6 years
    This will reset everything instead of only the specific folder.