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


当前回答

我做了:

git checkout -- ../.DS_Store

(#将本地更改(永久)丢弃到文件)而且效果很好!

其他回答

如果您无法删除这些文件,因为它们有暂存的更改,请使用:

git rm --cached -f *.DS_Store

从存储库中删除现有的.DS_Store文件:

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

添加此行:

.DS_Store

到文件.gitignore,该文件可以在存储库的顶层找到(如果文件还不存在,则创建该文件)。您可以在顶部目录中使用以下命令轻松完成此操作:

echo .DS_Store >> .gitignore

然后将文件提交到repo:

git add .gitignore
git commit -m '.DS_Store banished!'

如果要将DS_Store文件删除到每个文件夹和子文件夹:如果已提交DS_Store:

find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch

通过以下方式忽略它们:

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

以下方法对我来说效果最好。处理了不匹配的文件,以及本地修改的文件。作为参考,这是在运行git 1.7.4.4的Mac 10.7系统上。

查找并删除:

find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -f

我还通过设置全局core.excludsfile来全局忽略.DS_Store。

首先,创建文件(如果还不存在):

touch ~/.gitignore

然后添加以下行并保存:

.DS_Store

现在配置git以全局尊重文件:

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

无需在本地删除.DS_STORE

只需将其添加到.gitignore文件

gitinore文件只是一个文本文件,告诉Git在项目中要忽略哪些文件或文件夹。

命令

nano.git忽略写入.DS_Store,然后单击CTRL+X>y>点击返回gitstatus最后查看您的更改git-add.gitignoregitcommit-m'您的承诺信息'git推送原始主机