原文地址: https://blog.ichr.me/post/git-ignore-all-ds-store-on-mac/

收藏时间: 2022-08-02 10:03:06

文章分类: /Git

文章标签:GIt,软件操作,mac,macos,.ds_store,git,gitignore,global,remove,配置,方法,ChrAlpha,技术,博客


Git 在 macOS 中忽略所有 .DS_Store 文件

macOS 每个文件夹都存放着一个 .DS_Store 文件,是用于存放目录自定义属性(如图表、位置属性)等元数据信息的系统文件,由 Finder 自动创建。虽然所有 . 开头的文件/文件夹默认隐藏(可以使用 Command + Shift + . 显示所有隐藏文件),平时我们看不见,也不影响使用,但是 Git 仍会将其记录下来,即便我只是在同目录下移动文件。所以为了防止某些信息不经意间泄露出来,建议使用某些手段使 Git 忽略 .DS_Store 文件。

.gitignore

.gitignore 是 Git 提供的一个让用户控制 Git 忽略某些文件的文件。所有被 .gitignore 匹配的文件都不会被 Git 记录。

我们可以在仓库的根目录下新建一个 .gitignore 文件,让后追加以下内容:

1
2
3
.DS_Store
**/.DS_Store
.DS_Store?

这样依赖这个仓库就不会再记录 .DS_Store 文件了。

全局忽略

虽说可以使用上面的方法来忽略 .DS_Store ,但是每个仓库都要单独配置一遍,不如全局忽略来得直接了当。

  1. 打开终端,在某一个位置创建 .gitignore_global 文件**(建议在当前用户目录下)**:

    1
    
    touch ~/.gitignore_global
    
  2. 修改该文件,填入与上方 .gitignore 示例一样的内容

    1
    2
    3
    
    .DS_Store
    **/.DS_Store
    .DS_Store?
    
  3. 对 Git 进行全局配置

    1
    
    git config --global core.excludesfile ~/.gitignore_global
    

此时终端输入:

1
git config --list

如果发现这两行:

1
2
[core]
	excludesfile = /Users/[username]/.gitignore_global

就说明已经添加成功了,以后 Git 就不会再记录 .DS_Store 了。

批量移除已有的 .DS_Store

即便后续不会再记录,仓库中的 .DS_Store 都还在,需要手动删除。

终端进入仓库目录,输入:

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

这样就删除了所有该仓库的 .DS_Store 。重新提交推送即可。


参考链接

Git 在 macOS 中忽略所有 .DS_Store 文件

https://blog.ichr.me/post/git-ignore-all-ds-store-on-mac/

本文作者

ChrAlpha

最后更新

2020-02-16

许可协议

CC BY-NC-SA 4.0

转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!

便签格 # Git # Mac # .DS_Store # gitignore