.DS_Store 是 macOS 自动生成的垃圾文件,不建议上传到GitHub仓库中。
现有项目中隐藏.DS_Store文件
1、取消被追踪的 .DS_Store
如果当前的项目已经上传了 .DS_Store 文件,可以先取消 .DS_Store 文件的追踪:
git rm --cached .DS_Store
git commit -m "Remove .DS_Store from repo"
如果不手动取消 .DS_Store的追踪,那么即使添加 .gitignore,也会上传 .DS_Store 文件。
2、全局忽略
配置 .gitignore_global 文件,设置全局忽略:
echo ".DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
设置后,~/.gitconfig文件中会新增:
[core]
excludesfile = /Users/fangjunyu/.gitignore_global
表示排查文件为~/.gitgnore_global文件,而gitgnore_global文件的内容为:
.DS_Store
这样就实现了在GitHub上隐藏 .DS_Store 文件。
代码解析
1、echo “.DS_Store” >> ~/.gitignore_global
这段代码会往“~/.gitignore_global”文件中,追加一行 .DS_Store:
cat ~/.gitignore_global
.DS_Store
也可以使用 vi 手动编辑:
vi ~/.gitignore_global
.DS_Store // 忽略 .DS_Store
Thumbs.db // 忽略 Thumbs.db
*.log // 忽略 *.log
可以添加多个全局忽略规则。
2、配置Git的全局配置文件
git config --global core.excludesfile ~/.gitignore_global
这段代码表示,在Git的全局配置文件(~/.gitconfig)中添加一条规则:以后Git在忽略文件时,会额外读取 ~/.gitignore_global 文件。
–global表示对当前用户的所有Git仓库生效,不局限于某个项目。
配置完成后,可以在 ~/.gitconfig文件中看到一行:
[core]
excludesfile = /Users/fangjunyu/.gitignore_global
总结
~/.gitconfig为Git全局配置文件,~/.gitignore_global是自己创建的全局忽略列表,两者作用于当前用户的所有Git项目。
如果需要查看Git全局配置文件,也可以使用下面的命令列出全局配置:
git config --global --list