You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Gitignore仅保留指定子文件夹失效:vendor目录未被Git追踪求助

解决Git无法追踪vendor目录的问题

我之前也碰到过一模一样的情况,核心问题出在Git处理.gitignore规则的逻辑上——当你用*忽略所有内容后,目录本身会被Git判定为已忽略对象,这时候单纯写!vendor或者!vendor/,Git根本不会去扫描这个目录里的内容,自然也就不会追踪它。

正确的.gitignore配置

web/assets/.gitignore的内容改成下面这样:

*
!.gitignore
!test.txt
!vendor/
!vendor/**

规则解释

  • *:忽略当前目录下的所有文件和目录
  • !.gitignore:取消忽略自身配置文件
  • !test.txt:取消忽略测试文件
  • !vendor/:关键!先告诉Git不要忽略vendor这个目录本身(必须加斜杠明确是目录)
  • !vendor/**:取消忽略vendor目录下的所有子目录和文件(**是递归匹配所有层级的通配符)

额外操作(如果之前有缓存问题)

如果之前Git已经把vendor目录标记为忽略状态,需要先清除缓存再重新追踪:

git rm -r --cached web/assets/vendor
git add web/assets/

验证结果

现在再执行git status web/assets/,就能看到vendor目录里的文件被正常追踪了。另外要注意:Git不会追踪空目录,如果vendor是空的,即使配置正确也不会在状态里显示,需要里面有文件才行。

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

火山引擎 最新活动