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

为何.gitignore无法递归忽略tools目录下的非Python文件?

问题原因与解决办法

你的.gitignore规则无效的核心原因是Gitignore的否定规则(!)只能取消已经被标记为忽略的文件,而你只写了!tools/**/*.py,没有先告诉Git“要忽略tools目录下的所有内容”——那些非Python文件本来就不在Git的忽略列表里,自然谈不上“取消忽略”来保留py文件,反而你的规则完全起不到过滤非py文件的作用。

正确的配置需要分三步:

  • 第一步:先忽略tools目录下的所有内容
  • 第二步:取消对tools下所有子目录的忽略(Git不会扫描被忽略的目录,所以必须先让目录可被遍历)
  • 第三步:取消对所有.py文件的忽略,保留这些文件

对应的.gitignore代码如下:

# 忽略tools目录下的所有内容
tools/
# 保留tools下的所有子目录,确保Git能扫描到里面的文件
!tools/**/
# 保留所有.py文件
!tools/**/*.py

这样配置后,tools目录下所有非.py文件都会被忽略,只有.py文件会被Git追踪。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:01:18