.gitignore 速查表 - 忽略规则与写法大全

误把 node_modules 或 .env 提交进仓库,是几乎所有项目都会踩一次的坑。这份 .gitignore 参考按 5 组整理基础匹配语法、通配与注释、目录与文件、全局忽略与生效命令,以及常见语言模板。不确定某条规则是否命中时,用 git check-ignore -v 验证;已追踪的文件要先 git rm --cached 才停止追踪。读完后你能写出既安全又不会漏文件的忽略规则。

版本控制·共 24 条命令·最后更新 2026-08-02
gitignoregit忽略vcs

基本语法 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_Store
macOS 系统文件

提示

  • 模式匹配相对 .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日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们