码迷,mamicode.com
首页 > 系统相关 > 详细

Mac中Git忽略.DS_Store文件

时间:2020-02-27 16:19:48      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:table   公司   操作   mit   一个   系统   跳过   操作系统   bsp   

发现一个问题,上传项目到git会多出来一个打不开的.DS_Store文件,而且每次修改后或者没有修改打开过项目就会有一个文件(.DS_Store)说是修改过的,自己看着很不爽

.DS_Store 是什么

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

为什么要搞它

留着不是挺好的吗?一些自以为没有强迫症的人可能会以这种心态去保留它。其实不然,在 Git、SVN 甚至最基本的U盘拷贝文件夹的时候还是会把这个文件提交上去,然而这个文件一点卵用都没有,跟项目一点关系也没有。

如果不处理,每次拷贝给你同事的文件里都会包含有这个文件,或者上传网页的时候,应该把这个文件删除比较妥当,因为里面包含了一些你不一定希望别人看见的信息。(尤其是网站,通过 .DS_Store 可以知道这个目录里面所有文件的清单,很多时候这是一个不希望出现的问题。)

 

删除 .DS_Store

如果你的项目中还没有自动生成的 .DS_Store 文件,那么直接将 .DS_Store 加入到 .gitignore 文件就可以了。如果你的项目中已经存在 .DS_Store 文件,那就需要先从项目中将其删除,再将它加入到 .gitignore。如下:

#删除项目中的所有.DS_Store。这会跳过不在项目中的 .DS_Store
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

#将 .DS_Store 加入到 .gitignore
echo .DS_Store >> ~/.gitignore

#更新项目
git add .
git commit -m ‘.DS_Store banished!‘

删除、禁止生成

如果你只需要删除磁盘上的 .DS_Store,可以使用下面的命令来删除当前目录及其子目录下的所有.DS_Store 文件:

  • 删除当前目录的 .DS_store
1
find . -name ‘*.DS_Store‘ -type f -delete
  • 删除所有目录的 .DS_store
1
sudo find / -name ".DS_Store" -depth -exec rm {} \;
  • 禁止 .DS_store 生成
1
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
  • 恢复 .DS_store 生成
1
defaults delete com.apple.desktopservices DSDontWriteNetworkStores

 

  

 

Mac中Git忽略.DS_Store文件

标签:table   公司   操作   mit   一个   系统   跳过   操作系统   bsp   

原文地址:https://www.cnblogs.com/lyfstorm/p/12372449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!