如何删除那些烦人的Mac OS X. .DS_Store
来自Git存储库的文件?
如何删除那些烦人的Mac OS X. .DS_Store
来自Git存储库的文件?
从存储库中删除现有文件:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
添加行
.DS_Store
到文件 .gitignore
,可以在您的存储库的顶层找到(或者如果它已经存在则创建)。您可以使用top目录中的此命令轻松完成此操作
echo .DS_Store >> .gitignore
然后
git add .gitignore
git commit -m '.DS_Store banished!'
结合benzado和webmat的答案,更新 git rm
,不会发现不在repo中的文件失败,并且可以为任何用户进行一般性粘贴:
# remove any existing files from the repo, skipping over ones not in repo
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
# specify a global exclusion list
git config --global core.excludesfile ~/.gitignore
# adding .DS_Store to that list
echo .DS_Store >> ~/.gitignore
解决此问题的最佳解决方案是全局忽略系统上所有git存储库中的这些文件。这可以通过创建全局gitignore文件来完成,例如:
vi ~/.gitignore_global
添加规则以忽略以下文件:
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
现在,将此文件添加到您的全局git配置:
git config --global core.excludesfile ~/.gitignore_global
编辑:
删除了图标,因为它们可能需要作为应用程序资产提交。
在某些情况下,您可能还想忽略全局的某些文件。对我来说,.DS_Store就是其中之一。就是这样:
git config --global core.excludesfile /Users/mat/.gitignore
(或您选择的任何文件)
然后像repo的.gitignore一样编辑文件。请注意,我认为您必须使用绝对路径。
我不得不在上面将git-rm更改为git rm以使其工作:
find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print
如果由于进行了更改而无法删除文件,请使用:
git rm --cached -f *.DS_Store
打开终端并输入“cd <ProjectPath>”
删除现有文件:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
nano .gitignore
加上这个 .DS_Store
输入“ctrl + x”
输入“y”
输入以保存文件
git add .gitignore
git commit -m '.DS_Store removed.'