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

.geminiignore:控制 AI 可访问文件

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

典型使用场景

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

如何启用

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

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 通常也尊重 gitignore AI 不可见
语法 标准 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 的上下文里,新的排除规则只对之后的新会话生效。