Claude Code 的 grep 对 git 白名单仓库静默丢弃子目录文件

sndsgn · ghdev · 2026-10-17

Claude Code 的 Bash 工具把 grep 替换成内嵌 ugrep 并加 --ignore-files 参数,暴露出一个比此前报告更严重的 bug:当仓库用 deny-by-default 加 allowlist 的 .gitignore(如 + !/ + !bin/)时,从绝对路径或 ../repo 这类非 . 路径发起递归搜索,会静默丢弃子目录中被重新包含的文件(如 !bin/ 匹配的文件),而根目录级的 re-include(!/X.md)仍生效。

关键危害:结果通常是部分结果且退出码为 0,输出看起来像普通搜索结果,没有任何信号提示子目录被跳过。git check-ignore 确认未被忽略的文件也会被丢弃。

标签为 bug、has repro、platform:macos、area:bash,目前 3 条评论。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →