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

.gitignore中两个白名单嵌套目录行为不一致问题求助

问题原因

Git 不会遍历已经被标记为忽略的父目录,因此如果要为深层子目录添加白名单,必须先将所有上层父目录依次取消忽略。
你配置中第一条规则/*会忽略根目录下所有文件和文件夹,.config目录本身处于被忽略状态,Git 不会进入该目录扫描内部内容,因此你写的!/.config/i3/规则完全不会生效。
.vim/autoload能正常生效是因为该路径的父目录.vim已经被取消忽略,或是该目录下已有文件被 Git 提前跟踪(Git 忽略规则对已跟踪文件不生效)。

修复方案

调整你的.gitignore配置,先取消.config目录本身的忽略,再单独忽略.config下除i3之外的内容即可,参考完整配置如下:

/*
!/Scripts/
!/.static/
# 先取消.config根目录的忽略
!/.config/
# 忽略.config下所有默认内容
/.config/*
# 再单独把i3目录加入白名单
!/.config/i3/
# 补全.vim相关规则避免后续出现异常
!/.vim/
/.vim/*
!/.vim/autoload/

!.bashrc_extension
!.vimrc

修改后执行git add .config/i3/即可将对应目录纳入跟踪。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:39:03