.gitignore 速查表 - 忽略规则与写法大全
误把 node_modules 或 .env 提交进仓库,是几乎所有项目都会踩一次的坑。这份 .gitignore 参考按 5 组整理基础匹配语法、通配与注释、目录与文件、全局忽略与生效命令,以及常见语言模板。不确定某条规则是否命中时,用 git check-ignore -v 验证;已追踪的文件要先 git rm --cached 才停止追踪。读完后你能写出既安全又不会漏文件的忽略规则。
基本语法 Syntax 6
*.log忽略所有 .log 文件
build/忽略 build 目录及其内容
/dist仅忽略根目录下的 dist(不含子目录)
**/node_modules忽略任意层级的 node_modules
doc/*.txt忽略 doc 下一级的 .txt(不含子目录)
!keep.txt否定规则:不忽略 keep.txt
通配与注释 Patterns 6
?匹配单个任意字符
[abc]匹配方括号内任一字符
**匹配任意层级目录
# note注释行
\#file转义井号以匹配字面 #
\!imp转义感叹号以匹配字面 !
目录与文件 Dirs & Files 4
.cache忽略名为 .cache 的文件或目录
*.tmp忽略所有临时文件
logs/*.log忽略 logs 下一级日志
*.swp忽略编辑器交换文件
全局与生效 Global 4
git config --global core.excludesfile ~/.gitignore_global设置全局忽略文件
git check-ignore -v file查看某文件被哪条规则忽略
git rm --cached file停止追踪但保留本地文件
git add -f file强制添加被忽略的文件
常见语言模板 FAQ 4
node_modules/Node 依赖目录
.env环境变量(含密钥,务必忽略)
__pycache__/Python 缓存
.DS_StoremacOS 系统文件
提示
- 模式匹配相对 .gitignore 所在目录,根目录用 /dist 锚定。
- 先写否定规则 !file 时,其父目录必须未被忽略。
- git check-ignore -v file 可查出哪条规则忽略了某文件。
- 已追踪的文件需 git rm --cached 后才停止追踪。
常见问题
怎么写 .gitignore?
在项目根目录建 .gitignore,每行写一条匹配规则:目录加尾斜杠(build/),文件直接写名(.env),通配用 *(*.log),否定规则用 ! 恢复被忽略的项。常见依赖与密钥模式(node_modules/、.env)直接加进去就能避免误提交。
怎么在 Git 里忽略 node_modules 和 .env?
在 .gitignore 加两行:node_modules/ 与 .env(含 .env.local 等变体可用 .env* 配合 !.env.example)。已跟踪的文件要先 git rm --cached 再忽略才会生效。
.gitignore 和全局忽略有什么区别?
项目 .gitignore 只对该仓库生效;全局忽略(git config --global core.excludesfile ~/.gitignore_global)对所有仓库生效,适合放编辑器缓存、OS 隐藏文件等通用项。两者语法一致。
怎么检查某条忽略规则是否命中了文件?
用 git check-ignore -v <文件> 查看是哪一行规则命中以及来源文件;无输出说明未被忽略。排错时先确认路径写法与否定规则的先后顺序。
gitignore 的感叹号和斜杠是什么意思?
行尾 / 表示只匹配目录;! 开头是否定规则,把前面被忽略的项重新纳入跟踪(否定规则要写在更宽泛的忽略之后才生效);/ 开头表示只匹配仓库根目录下的路径。
由 巧匠 维护
公开更新于 2026年8月2日,内容持续校对官方文档。