I've added .DS_Store to the .gitignore file, but it seems that it is only ignoring .DS_Store in the root directory, not in every folder and subfolder.
How do I fix this?
I've added .DS_Store to the .gitignore file, but it seems that it is only ignoring .DS_Store in the root directory, not in every folder and subfolder.
How do I fix this?
I think the problem you're having is that in some earlier commit, you've accidentally added .DS_Store files to the repository. Of course, once a file is tracked in your repository, it will continue to be tracked even if it matches an entry in an applicable .gitignore file.
You have to manually remove the .DS_Store files that were added to your repository. You can use
git rm --cached .DS_Store
. Once removed, git should ignore it. You should only need the following line in your root .gitignore file:.DS_Store
. Don't forget the period!git rm --cached .DS_Store
removes only.DS_Store
from the current directory. You can usefind . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
to remove all.DS_Stores
from the repository.Felt tip: since you probably never want to include .DS_Store files, make a global rule. First, make a global .gitignore file somewhere, e.g.
echo .DS_Store >> ~/.gitignore_global
. Now tell git to use it for all repositories:git config --global core.excludesfile ~/.gitignore_global
.This page helped me answer your question: https://help.github.com/articles/ignoring-files
Add
**/.DS_Store
into.gitignore
for the sub directoryIf
.DS_Store
already committed:To ignore them in all repository: (sometimes it named
._.DS_Store
)Step 1, delete all the
*.DS_store
files. One can runbut be aware that
rm -f
can be a bit dangerous if you have a typo! Step two: addto .gitignore. This worked for me!
Your .gitignore file should look like this:
As long as you don't include a slash, it is matched against the file name in all directories. (from here)
If .DS_Store was never added to your git repository, simply add it to your .gitignore file.
If you don't have one, create a file called
In your the root directory of your app and simply write
In it. This will never allow the .DS_Store file to sneak in your git.
But, if it's already there, write in your terminal:
then commit and push the changes to remove the .DS_Store from your remote repo:
And now add .DS_Store to your .gitignore file, and then again commit and push with the 2 last pieces of code (git commit..., git push...)
Add
*.DS_Store
to your .gitignore file. That works for me perfectly