如何从Git存储库中删除那些烦人的Mac OS X.DS_Store文件?
当前回答
排名靠前的答案很好,但帮助像我这样的新手,下面是如何创建.gitignore文件,编辑它,保存它,删除您可能已经添加到git的文件,然后将文件推到Github。
创建.gitignore文件
要创建.gitignore文件,只需触摸创建具有指定名称的空白文件的文件即可。我们希望创建名为.gitignore的文件,以便可以使用以下命令:
touch.gitignore
忽略文件
现在,您必须将告诉git忽略DS Store文件的行添加到您的.gitignore中。您可以使用nano编辑器来完成此操作。
nano.git忽略
Nano很好,因为它包含如何退出的说明。(按Ctrl-O保存,按Ctrl-X退出)
复制并粘贴Github要点中的一些想法,其中列出了一些要忽略的常见文件。要回答这个问题,最重要的是:
# OS generated files #
######################
.DS_Store
.DS_Store?
#是注释,将帮助您在文件增长时组织文件。
这篇Github文章也有一些一般的想法和指导原则。
删除已添加到git的文件
最后,您需要从目录中实际删除这些DS Store文件。
使用这个来自投票结果最高的命令。这将遍历目录中的所有文件夹,并从git中删除这些文件。
查找-name.DS_Store-print0|xargs-0 git rm-f--忽略取消匹配
将.gitignore推送到Github
最后一步,您需要实际提交.gitignore文件。
git状态
git-add.gitignore
gitcommit-m‘.DS_Store已被驱逐!’
其他回答
我必须将上面的git rm更改为git rm才能使其工作:
find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print
我做了:
git checkout -- ../.DS_Store
(#将本地更改(永久)丢弃到文件)而且效果很好!
永久删除此文件的最佳方法:
生成全局.gitignore文件:
echo .DS_Store >> ~/.gitignore_global
让Git知道您希望将此文件用于所有存储库:
git config --global core.excludesfile ~/.gitignore_global
就是这样。DS_Store将在所有存储库中被忽略。
如果您使用的是GitHub Desktop应用程序,则此方法有效。
如果还没有,请在应用程序中打开存储库(¨O)从“存储库”选项卡中,选择“存储库设置”。转到“忽略的文件”并添加您希望忽略的文件。
如果您无法删除这些文件,因为它们有暂存的更改,请使用:
git rm --cached -f *.DS_Store