Skip to content

.geminiignore 文件让你精确控制 Gemini CLI 能"看到"哪些文件:把 .env、本地数据库备份、私有笔记等敏感内容隔离在 AI 视野之外,同时不影响 git 对这些文件的追踪。语法与 .gitignore 完全一致,放在项目根目录即可生效。

.geminiignore:控制 AI 可访问文件

.geminiignore 文件让你决定哪些文件对 Gemini CLI 不可见——AI 无法读取、搜索或引用这些文件,但它们对 Git 和其他工具仍然可访问。

典型使用场景

  • 保护敏感信息.env 文件、API Key、数据库凭据
  • 排除私有内容:本地数据库备份、私人笔记、不适合分享的草稿
  • 减少干扰:大型二进制文件、生成物、无需 AI 理解的历史文档

如何启用

在项目根目录创建 .geminiignore 文件即可激活:

bash
touch .geminiignore

修改 .geminiignore需要重启 Gemini CLI 会话才能生效。

文件语法

.geminiignore 使用与 .gitignore 相同的语法规则:

基本规则

规则说明
# 开头注释,被忽略
空行被忽略
目录名/结尾的 / 只匹配目录,不匹配同名文件
/ 开头锚定到 .geminiignore 所在目录(项目根)
! 开头取反,从已排除列表中移除

通配符

模式说明
*匹配任意数量任意字符(不含路径分隔符)
?匹配单个任意字符
**匹配任意路径层级
[abc]匹配括号内任一字符

示例

排除敏感配置文件

# 排除环境变量文件
.env
.env.local
.env.production

# 排除 API Key 文件
apikeys.txt
credentials.json

排除目录

# 排除 /archive/ 目录及所有子目录
/archive/

# 排除 node_modules(通常 .gitignore 已有,但可以显式指定)
node_modules/

# 排除本地数据库备份
/local-db-dumps/

使用通配符

# 排除所有 .md 文件
*.md

# 但保留 README.md
*.md
!README.md

# 排除所有 SQL 文件
*.sql

组合规则

# 排除私有笔记目录
/private-notes/

# 排除所有 .log 文件,但保留 important.log
*.log
!important.log

# 排除所有 .bak 备份文件
**/*.bak

与 .gitignore 的关系

特性.gitignore.geminiignore
Git 可见性文件对 Git 不可见文件对 Git 仍然可见
AI 可见性AI 通常也尊重 gitignoreAI 不可见
语法标准 gitignore完全相同
场景不提交到仓库的文件提交但不想给 AI 看的文件

Gemini CLI 默认已经遵守 .gitignore,所以你只需要在 .geminiignore 中额外写那些"git 追踪但不想被 AI 读取"的文件。

下一步

常见问题

Q: .geminiignore 文件本身会被 AI 读取吗?

A: .geminiignore 是元配置文件,Gemini CLI 会读取它来建立排除规则,但不会把它的内容注入到 AI 的提示上下文中。AI 不会"看到"你写了哪些排除规则。

Q: 修改 .geminiignore 后多久生效?

A: 需要重启 Gemini CLI 会话才能生效。在当前会话中修改后直接运行 /memory reload 不能刷新 .geminiignore,必须完全退出并重启。

Q: 对已经引用了的文件,中途添加到 .geminiignore 会有效果吗?

A: 需要重启会话才生效。已经在当前会话中被读取的文件内容仍然在 AI 的上下文里,新的排除规则只对之后的新会话生效。