I added .gitignore to my project after I had everything commited. Now I want to run a command like:
git rm --cached *everything_listed_in_gitignore*
How can this be achieved? Thank you in advance.
To untrack every file that is now in your . gitignore : First commit any outstanding code changes, and then, run this command: git rm -r --cached .
If you want to ignore a file that you've committed in the past, you'll need to delete the file from your repository and then add a . gitignore rule for it. Using the --cached option with git rm means that the file will be deleted from your repository, but will remain in your working directory as an ignored file.
The git clean command also allows removing ignored files and directories.
I found another way that works even better in any operating system from https://ardalis.com/how-to-make-git-forget-tracked-files-in-gitignore .
After adding new rules to .gitignore
git rm -r --cached .
git add .
Basically, it removes everything and adds everything back. When adding, Git will ignore files based on .gitignore
There is a shorter version, the answer is taken from here.
You can also remove files from the repository based on your .gitignore without deleting them from the local file system:
git rm --cached `git ls-files -i -X .gitignore`
Or, alternatively, on Windows Powershell:
git rm --cached $(git ls-files -i -X .gitignore)
I'm always using the following line to remove files listed in my .gitignore
:
grep -vP "^(#|\$)" .gitignore|sed "s/^\///"|xargs rm -f
This will find lines in .gitignore
that do not match (-v
option to grep) the regular expression ^(#|\$)
matching lines that start with #
(comments) or empty lines.
Then sed
will remove a forward slash /
at the start of the line.
The results are passed to rm -f
using xargs
, which you could replace with git rm --cached
Note:
Your .gitignore
file can contain entries like *.tmp
to ignore all .tmp
files throughout the project. The above command would only remove *.tmp
files from the root. Only full paths will be handled correctly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With