我已经将.DS_Store添加到.gitignore文件中,但它似乎只是忽略了根目录中的.DS_Store,而不是每个文件夹和子文件夹中的.DS-Store。
我该如何修复?
我已经将.DS_Store添加到.gitignore文件中,但它似乎只是忽略了根目录中的.DS_Store,而不是每个文件夹和子文件夹中的.DS-Store。
我该如何修复?
当前回答
步骤:1)使用此命令删除现有文件
查找-name.DS_Store-print0|xargs-0 git rm-f--忽略取消匹配
步骤:2)在.gitignore文件中添加.DS_Store
步骤:3)在.gitignore中提交更改git-add.gitignoregitcommit-m“已删除.DS_Store”
其他回答
将子目录的**/.DS_Store添加到.gitignore中
如果.DS_Store已提交:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
在所有存储库中忽略它们:(有时名为._.DS_Store)
echo ".DS_Store" >> ~/.gitignore_global
echo "._.DS_Store" >> ~/.gitignore_global
echo "**/.DS_Store" >> ~/.gitignore_global
echo "**/._.DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
只需将其放在.gitignore中的新行中
**/.DS_Store
来自git文档
前导“**”后接斜杠表示所有目录中的匹配。例如,“**/foo”与任何位置的文件或目录“foo”匹配,与模式“foo“相同。“**/foo/bar”匹配直接位于目录“foo”下的文件或目录“bar”。
您还可以将--cached标志添加到auco的答案中,以维护本地.DS_store文件,正如Edward Newell在最初的答案中所提到的那样。修改后的命令如下:find-name.DS_Store-print0|xargs-0 git rm--cached--忽略取消匹配。。干杯,谢谢!
.gitignore文件应如下所示:
# Ignore Mac DS_Store files
.DS_Store
只要不包含斜线,它将与所有目录中的文件名匹配。(从这里开始)
$git rm./*。DS_Store-从git中删除所有.DS_Store$echo\.DS_Store>>.gitignore-忽略.DS_Store
提交并推送