解决Mac用户的Hexo博客使用git上传造成的DS_Store信息泄露
前言
众所周知,mac会自动在目录下生成 .DS_Store 的隐藏文件.
什么.DS_Store呢? 这里来一段维基百科的解释.
.DS_Store (英文全称 Desktop Services Store)[1] 是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。[2]该文件由Finder创建并维护,类似于Microsoft Windows中的desktop.ini文件。
然而这个文件却有着信息泄露的危害
这个隐藏文件会泄露该文件所在目录下所有文件以及目录(即便这些文件是隐藏的或者无权限访问的).
解决方法
方法一 采用全局忽略的方式
创建全局忽略文件
1  | cd ~  | 

修改文件内容
进入访达,点击前往菜单,选择个人,打开刚刚创建好的gitignore_global文件。如果你没有打开查看隐藏文件的权限,可以同时按下cmd+shift+.来开关查看隐藏文件。

添加规则
在gitignore_global文件中添加

删除已有文件
由于.gitignore只对还没追踪的文件(后面新加入的文件)生效,而之前已经存在的git项目,后面再添加.gitignore是不会生效的,需要
1  | git rm -r --cached .  | 
即删除之前上传的.DS_Store文件
但是如果当前命令行窗口不在版本库(又名为仓库,英文名为repository)或未初始化git本地版本管理仓库时
使用该命令会报错,建议先自行解决.
tips:
如果出现这个问题
点击这个解决办法
方法二
删除已有的.DS_Store文件
通过进入博客对应的目录,查看隐藏文件即可
全局禁用Mac生成.DS_Store文件
打开“终端”,复制粘贴下面的命令,回车执行,重启Mac即可生效。
- 禁止.DS_store生成:
 
1  | defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE  | 
如果后需需要 恢复.DS_store生成:
1  | defaults delete com.apple.desktopservices DSDontWriteNetworkStores  | 
删除已有文件
重复方法一的操作.