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

求助:Git忽略目录a/b但排除其中所有foo.js文件的配置方法

Gitignore配置问题解决:忽略a/b目录但保留其中的foo.js文件

你的配置无效的核心原因是:当Git识别到a/b/*规则时,会直接忽略a/b下的所有直接子目录(比如c、d、e、f),不会再扫描这些子目录里的内容,因此后面的!a/b/**/foo.js规则根本不会被触发。

要实现「忽略a/b下所有内容,但保留所有foo.js」的需求,需要让Git能扫描a/b的子目录,再针对性排除文件。以下是两种可行的配置方案:

方案一

# 忽略a/b下所有层级的文件和子目录内容,但保留目录结构
a/b/**/*
# 排除所有foo.js文件
!a/b/**/foo.js

方案二

# 先标记忽略a/b整个目录
a/b/
# 取消忽略a/b下所有子目录(让Git可以进入这些目录扫描)
!a/b/**/
# 取消忽略所有foo.js文件
!a/b/**/foo.js

额外注意

如果这些foo.js文件之前从未被Git追踪过,配置完直接执行git add .即可生效。如果之前它们被Git缓存过(比如不小心提交过),需要先清除缓存:

git rm --cached a/b/**/foo.js

之后再重新添加到仓库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 02:14:58