全局忽略文件是什么
core.excludesFile 指向一份只对本机账号生效的忽略清单,规则语法与 .gitignore 相同,但不随仓库分发。它适合编辑器临时文件、操作系统文件(.DS_Store、Thumbs.db)以及个人工具目录这些「只有我会产生」的内容,避免把个人习惯塞进团队共用的 .gitignore。
基本信息
| 配置键 | core.excludesFile |
|---|---|
| 默认位置 | ~/.config/git/ignore(遵循 XDG 约定,未配置时也可用) |
| 规则语法 | 与 .gitignore 相同,支持 ! 取反与 ** 通配 |
| 优先级 | 命令行 > 目录 .gitignore > .git/info/exclude > 全局 excludesFile |
| 适用平台 | 所有平台,路径写法随系统不同 |
典型使用场景
- 编辑器与 IDE 产物:.idea/、*.swp、*.code-workspace
- 系统生成文件:.DS_Store、Thumbs.db、desktop.ini
- 个人笔记与临时脚本目录,不希望出现在别人的仓库规则里
- 本机构建缓存目录,因机器配置不同而路径各异
- 避免往仓库 .gitignore 加入只有少数人需要的条目,减少评审噪音
配置与内容
配置与内容
mkdir -p ~/.config/git # 目录不存在时先创建
git config --global core.excludesFile ~/.config/git/ignore # 指定清单路径
# 清单内容示例(每行一条规则)
*.swp
.idea/
.DS_Store
Thumbs.db
git check-ignore -v .idea/workspace.xml # 验证命中了哪条规则与来源文件三类忽略清单分工
| 清单 | 生效范围 | 典型内容 |
|---|---|---|
| 仓库 .gitignore | 所有克隆者 | 构建产物、依赖目录、日志 |
| 全局 excludesFile | 仅本机账号 | 编辑器临时文件、系统文件 |
| 仓库 .git/info/exclude | 仅本机此仓库 | 个人调试脚本、临时数据 |
全局忽略在优先级链条里最低,不会盖过团队规则:仓库 .gitignore 里的 ! 取反仍能强制跟踪被全局忽略的文件,这正是它适合放个人规则的原因。
确认实际生效路径用 git config --show-origin --get core.excludesFile,可同时看到配置来源文件,避免改了不生效却查不出原因。
全局忽略与仓库内 .gitignore 是叠加生效而不是互相覆盖:命中任意一份清单的文件都会被忽略,取反规则则按优先级从高到低判定,所以「明明在全局忽略了却还能提交」通常说明仓库里有一条取反规则。
这份清单不在仓库里,克隆时不会被带过来:换新机器或新同事加入时容易忘记配置,表现为编辑器临时文件频繁出现在待提交列表里。