github/gitignore · Global/macOS.gitignore
macOS .gitignore 模板详解
说明 macOS.gitignore 忽略 .DS_Store、._ 资源分支、Icon 文件以及 Spotlight、Time Machine、废纸篓目录的原因,以及放入全局 gitignore 的方法。
macOS.gitignore 拦截 Finder 和 macOS 文件系统在用户不知情时生成的元数据文件。它们与项目内容无关,因此这个模板原本推荐放在个人全局 gitignore(core.excludesFile)中,而不是仓库里。
现实中并非所有团队成员都会配置全局设置,因此 .DS_Store 被提交的事故很常见。所以也有很多团队把它一并放进项目的 .gitignore。
逐条规则详解
| 模式 | 忽略什么,为什么忽略 |
|---|---|
.DS_Store.localized | Finder 元数据.DS_Store 是 Finder 在每个目录中生成的显示设置(图标位置、排序)文件。只要打开目录就会生成,其中包含文件名列表,可能无意中泄露信息。 |
._*.AppleDouble.LSOverride | 资源分支(AppleDouble)把文件复制到非 HFS+、APFS 卷(FAT、网络共享)时,为保存扩展属性而生成的 ._文件名 配对文件。 |
.VolumeIcon.icns | 自定义图标卷图标文件。文件夹的自定义图标保存为名称末尾带换行符(CR)的 Icon 文件,模板用 Icon[\r] 形式的方括号模式匹配它。 |
.Spotlight-V100.fseventsd.Trashes.TemporaryItems.DocumentRevisions-V100 | 系统索引与废纸篓在外置磁盘或卷根目录生成的 Spotlight 索引、文件系统事件日志、废纸篓以及文稿版本存储。 |
.com.apple.timemachine.donotpresent.com.apple.timemachine.supportedBackups.backupdb.MobileBackups | Time Machine在 Time Machine 备份磁盘上生成的标记文件和备份目录。 |
.AppleDB.AppleDesktopNetwork Trash FolderTemporary Items.apdisk | AFP 共享目录AFP(Apple Filing Protocol)文件服务器在共享卷上生成的数据库和目录。即使名称中有空格,gitignore 模式也可以照原样书写。 |
__MACOSX/ | 解压副产物用其他工具解压在 macOS 上创建的 zip 时出现的资源分支目录。 |
实践中的注意事项
- 全局设置:执行
git config --global core.excludesFile ~/.gitignore_global后,把此模板放进该文件。如果不设置,则使用默认路径~/.config/git/ignore。 - 已经提交的
.DS_Store用git rm --cached删除。在取消跟踪标签页中使用“所有匹配 .gitignore 的已跟踪文件”模式,可以一次性处理。 ._*规则并不会拦截所有以下划线开头的文件,只针对以._(点加下划线)开头的名称。
原始模板
macOS.gitignore
# General.DS_Store.localized__MACOSX/.AppleDouble.LSOverrideIcon[ ]# Resource forks._*# Files and directories that might appear in the root of a volume.DocumentRevisions-V100.fseventsd.Spotlight-V100.TemporaryItems.Trashes.VolumeIcon.icns.com.apple.timemachine.donotpresent.com.apple.timemachine.supported.PKInstallSandboxManager.PKInstallSandboxManager-SystemSoftware.hotfiles.btree.vol.file.disk_label*lost+found.HFS+ Private Directory Data[ ]# Directories potentially created on remote AFP share.AppleDB.AppleDesktopNetwork Trash FolderTemporary Items.apdisk# Mac OS 6 to 9Desktop DBDesktop DFTheFindByContentFolderTheVolumeSettingsFolder.FBCIndex.FBCSemaphoreFile.FBCLockFolder# Quota system.quota.group.quota.user.quota.ops.group.quota.ops.user# TimeMachineBackups.backupdb.MobileBackups.MobileBackups.trashMobileBackups.trashtmbootpicker.efi
模板来源: github/gitignore/Global/macOS.gitignore @356fd7b (2026-09-11) · CC0-1.0