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

119 阅读1分钟

##一、 .DS_Store文件是什么?

使用 Mac 的用户可能会注意到,系统经常会自动在每个目录生成一个隐藏的.DS_Store文件。.DS_Store(英文全称 Desktop Services Store)是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。相当于 Windows 下的 desktop.ini。

二、如果新的git项目

创建.gitignore 并在 文件中添加.DS_Store 即可。

三、如果git 项目中已经发现有 .DS_Store 的删除方法

# 发现当前目录以及子目录下的 .DS_Store, 并删除
find . -name .DS_Store -print0|xargs -0 git rm -f --ignore-unmatch 

# 写入 在忽略文件中 添加.DS_Store ,从git上忽略 .DS_Store 稳健
echo .DS_Store>>~/.gitignore

# 把当前的修改添加到git中
git add .

# 把当前的修改提交
git commit -m "fix(del): del.DS_Store files"

# 把提交push到远程分支
git push origin master

四、只删除本地的.DS_Store

find . -name '*.DS_Store' -type f -delete

启用或禁用.DS_Store的生成

禁止.DS_Store生成

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

恢复.DS_Store生成

defaults delete com.apple.desktopservices DSDontWriteNetworkStores