Gemini CLI 的 GitIgnoreParser 误判嵌套 .gitignore 的再包含规则
auraseb · ghdev · 2026-10-19
google-gemini/gemini-cli 仓库 issue #29826:当根目录 .gitignore 写有 logs/、而 logs/.gitignore 里有 !keep.txt 时,Gemini CLI 会把 git 实际追踪的 logs/keep.txt 当作被忽略,导致它在 @ 补全、glob、grep、readmanyfiles 和目录结构中全部不可见。
按 git 语义,logs/ 只匹配目录内内容而非 logs 本身,git 仍会读取 logs/.gitignore 并让 !keep.txt 再包含生效(作者用 git check-ignore -v 验证)。问题根因是 #29582(子树剪枝)引入的回归:expandWildcardDirectoryPatterns 会把 logs/ 额外展开成 /logs/,使目录本身被视为忽略,GitIgnoreParser.computeRelDirState 因此不再加载 logs/.gitignore;展开逻辑只考虑了同一文件中的否定规则,未考虑目录自身 .gitignore 中的否定规则。作者已定位根因、写好修复与回归测试,等待分配后提交 PR。
「编程与Agent」频道最新
- Decisions API 正式 GA,agent 反馈循环全自动剪辑云视频 — dkundel · 2026-10-23
- 50+ 免费 AI Agent 学习资源合集:视频与仓库一站打包 — ifioknkem · 2026-10-23
- 自封「全网最佳」的免费 AI Agent 资源库引围观 — ifioknkem · 2026-10-23
- Vercel 推出免注册部署:拖拽文件到首页即得线上 URL — steren · 2026-10-23
- 5 个 Claude Code 会话经 MCP 互发邮件,组队攻破多品牌网络摄像头 — doodlestein · 2026-10-23
- Vercel 上线 vercel deploy --temporary,可临时部署后自动清理 — cramforce · 2026-10-23