如何从Git存储库中删除那些烦人的Mac OS X.DS_Store文件?


当前回答

永久删除此文件的最佳方法:

生成全局.gitignore文件:

echo .DS_Store >> ~/.gitignore_global

让Git知道您希望将此文件用于所有存储库:

git config --global core.excludesfile ~/.gitignore_global

就是这样。DS_Store将在所有存储库中被忽略。

其他回答

结合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

出于某种原因,以上这些都不适用于我的mac。

我的解决方案来自终端运行:

rm .DS_Store

然后运行以下命令:

git pull origin master

有时.DS_Store文件位于远程存储库中,但在本地项目文件夹中不可见。要解决此问题,我们需要删除所有缓存的文件并再次添加。

步骤1:将其添加到.gitignore文件中。

# Ignore Mac DS_Store files
.DS_Store
**/.DS_Store

步骤2:删除缓存的文件,然后使用这些命令再次添加。

git rm -r --cached .
git add .
git commit -am "Removed git ignored files"
git push -f origin master

使用touch.gitignore命令创建.gitignore文件

并在其中添加以下行

.DS_Store

保存.gitignore文件,然后将其推送到git repo中。

排名靠前的答案很好,但帮助像我这样的新手,下面是如何创建.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已被驱逐!’