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


当前回答

这对我很有用,上面有两个答案:

$git rm--缓存-f*.DS_Store$gitcommit-m“过滤器分支--索引过滤器'git rm--缓存--忽略取消匹配.DS_Store“$git推送原始主机--强制

其他回答

这将起作用:

find . -name "*.DS_Store" -type f -exec git-rm {} \;

它将删除所有名称以.DS_Store结尾的文件,包括._。DS_存储。

在某些情况下,您可能还需要全局忽略某些文件。对我来说,.DS_Store就是其中之一。以下是操作方法:

git config --global core.excludesfile /Users/mat/.gitignore

(或您选择的任何文件)

然后像repo的.gitignore一样编辑文件。注意,我认为必须使用绝对路径。

将此添加到文件中。gitignore

#Ignore folder mac
.DS_Store

保存并提交

git add -A
git commit -m "ignore .DS_Store"

现在你忽略了这一切

我必须将上面的git rm更改为git rm才能使其工作:

find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print

有几种解决方案可以解决这个问题。要避免创建.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编辑器。