如何从Git存储库中删除那些烦人的Mac OS X.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!'

其他回答

我做了:

git checkout -- ../.DS_Store

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

有几种解决方案可以解决这个问题。要避免创建.DS_Store文件,请不要使用OS X Finder查看文件夹。查看文件夹的另一种方法是使用UNIX命令行。要删除.DS_Store文件,可以使用名为DS_Store Terminator的第三方产品。要从整个系统中删除.DS_Store文件,可以使用UNIX shell命令。从应用程序启动终端:实用程序在UNIX shell提示符下,输入以下UNIX命令:sudo find/-name“.DS_Store”-dept-exec rm{}\;当提示输入密码时,请输入Mac OS X管理员密码。

此命令用于从文件系统的根(/)开始查找并删除整个计算机中出现的所有.DS_Store。要将此命令配置为作为计划任务运行,请执行以下步骤:从应用程序启动终端:实用程序在UNIX shell提示符下,输入以下UNIX命令:

sudo crontab-e当提示输入密码时,请输入Mac OS X管理员密码。在vi编辑器中,按下键盘上的字母I一次,然后输入以下内容:

15 1***根查找/-name“.DS_Store”-deth-exec rm{}\;

这称为crontab条目,其格式如下:

分钟小时DayOfMonth月DayOfWeek用户命令。

crontab条目意味着该命令将由系统在每天凌晨1:15由名为root的帐户自动执行。

命令从find开始一直到。如果系统未运行,则不会执行此命令。

要保存条目,请按Esc键一次,然后同时按Shift+z+z。

注意:步骤4中的信息仅适用于vi编辑器。

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

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

rm .DS_Store

然后运行以下命令:

git pull origin master

打开终端并键入“cd<ProjectPath>”

删除现有文件:查找-name.DS_Store-print0|xargs-0 git rm-f--忽略取消匹配nano.git忽略添加此.DS_Store键入“ctrl+x”类型“y”输入以保存文件git-add.gitignoregitcommit-m'.DS_Store已删除。'

以下方法对我来说效果最好。处理了不匹配的文件,以及本地修改的文件。作为参考,这是在运行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