You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何.gitignore中/foo/*规则会忽略foo/bar/hello.c文件?

为什么/foo/*会忽略foo/bar/hello.c

核心原因是Git会跳过所有被标记为忽略的目录,不会遍历其中的内容,具体逻辑如下:

  • 你的.gitignore规则/foo/*会匹配foo目录下的所有直接子项,包括test.json文件和bar目录。
  • 当Git识别到bar目录被忽略后,它不会再进入该目录扫描内部文件,因此bar/hello.c完全不会被Git处理,表现出来就是被忽略了。
  • 这和规则本身不匹配foo/bar/hello.c并不矛盾——规则是匹配了父目录bar,间接导致了子文件被忽略。

如果需要让bar目录下的文件被追踪,可以修改.gitignore规则:

/foo/*
!/foo/bar/

先忽略foo下的所有内容,再通过!排除bar目录,Git就会正常遍历bar目录并处理其中的文件了。

内容的提问来源于stack exchange,提问作者sonooby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:29:51