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

如何配置.gitignore仅递归保留.asd文件 目录名含点时也生效

问题原因

你之前编写的*.*规则会匹配所有名称带点的对象,不区分文件和目录。而.gitignore的核心逻辑是:如果父级目录被标记为忽略,Git不会再扫描该目录下的任何内容,即使子文件配置了白名单规则也不会生效。所以你那些名称带点的目录(比如fooooo.srcs、barr.srcs)直接被*.*匹配忽略了,目录内的.asd文件自然不会被识别到。

正确的.gitignore配置

仅靠.gitignore完全可以实现需求,使用以下规则即可:

# 第一步:默认忽略所有文件
*
# 第二步:放行所有目录,确保Git会遍历所有层级目录寻找需要保留的文件
!*/
# 第三步:放行所有.asd后缀的文件,不受目录层级限制
!*.asd
# 可选:如果需要将.gitignore本身也纳入版本管理,加下面这条
!.gitignore

效果验证

使用上述规则后再执行git status -u -s,输出将仅包含所有.asd文件和(你选择保留的).gitignore文件,其余无关文件都会被正常忽略,VS Code等编辑器的Git插件也不会再将无关文件标记为未跟踪。

如果有明确不需要扫描的超大目录,你可以在规则最上方额外添加对应目录的忽略规则(比如node_modules/),不会影响.asd文件的匹配逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:45:05