Skip to content

Instantly share code, notes, and snippets.

@jeffjohnson9046
Created August 11, 2015 21:02
Show Gist options
  • Star 43 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save jeffjohnson9046/80bc182db7ae2f4a6150 to your computer and use it in GitHub Desktop.
Save jeffjohnson9046/80bc182db7ae2f4a6150 to your computer and use it in GitHub Desktop.
Remove unwanted files from a git repo AFTER adding a .gitignore. The files will remain on disk.
## I just ran into this after initializing a Visual Studio project _before_ adding a .gitignore file (like an idiot).
## I felt real dumb commiting a bunch of files I didn't need to, so the commands below should do the trick. The first two commands
## came from the second answer on this post: http://stackoverflow.com/questions/7527982/applying-gitignore-to-committed-files
# See the unwanted files:
git ls-files -ci --exclude-standard
# Remove the unwanted files:
git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
# Commit changes
git commit -am "Removed unwanted files marked in .gitignore"
# Push
git push origin master # or whatever branch you're on
@prasket
Copy link

prasket commented Apr 11, 2016

Hey Jeff thanks for making this exactly what I was looking for!

@noplanman
Copy link

Perfect! Thanks so much for this.
Forgot the .gitignore too and this saved me from redoing a whole bunch of commits.

As you say:

(like an idiot)

@zacpwhite
Copy link

Thanks Jeff! This definitely saved me some time!

@shrukul
Copy link

shrukul commented Oct 30, 2017

Brilliant! Thanks Jeff :)

@shubhamsc
Copy link

awesome job
it's exactly same what i'm looking for
thank jeff

@sayinserdar
Copy link

Thanks a lot :) I've been searching for this, even github docs couldn't help me 👍

@DongYuYu
Copy link

Thanks, it's really helpful!

@hqn-scl
Copy link

hqn-scl commented Feb 29, 2020

Beautiful and perfect. Forked it for reference.

@VPavliashvili
Copy link

Thank you so much, this is what I was looking for

@ErinGe
Copy link

ErinGe commented Mar 29, 2021

Thanks a lot, really helpful!!!

@MightyOwler
Copy link

This is genius! Thank you!

@GlavS
Copy link

GlavS commented Nov 15, 2022

I would give 100 stars if I could... >_<
Thank you!!!

@ktMcD
Copy link

ktMcD commented Dec 15, 2022

You posted this more than six years ago and people are still benefitting from your efforts. Thank you so very much. If you were my neighbor I'd bake you something.

@OstenTV
Copy link

OstenTV commented Mar 8, 2024

For Windows, if anyone needs it :)

git ls-files -ci --exclude-standard

REM Remove the unwanted files: 
FOR /F "tokens=*" %G IN ('git ls-files -ci --exclude-standard') DO git rm --cached "%G"

REM Commit changes
git commit -am "Removed unwanted files marked in .gitignore"

REM Push
git push origin master

@cartesian-plane
Copy link

This can also be done via the web interface.
You have to open the file, then click the ... at the top right for the delete option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment