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

Git配置:如何递归忽略点开头文件夹,排除自带.gitignore的?

实现递归忽略点开头文件夹,排除自带.gitignore的目录

你可以通过以下.gitignore规则组合实现需求,核心思路是先全局忽略所有点开头的文件夹,再反向排除那些包含.gitignore文件的目录,同时避免误删Git自身的仓库目录:

# 递归忽略所有以点开头的文件夹(含各级子目录)
**/.*
# 排除带.gitignore的点开头文件夹内的.gitignore文件(让Git能识别到它)
!**/.*/*.gitignore
# 排除带.gitignore的点开头文件夹本身(不再忽略该目录)
!**/.*
# 强制保留Git仓库核心目录,避免被误忽略
!.git/

规则详解

  • **/.*:用递归通配符**匹配所有层级的子目录,.*/会匹配所有以点开头的文件夹,将它们加入忽略列表。
  • !**/.*/*.gitignore:反向排除规则,告诉Git不要忽略这些点开头文件夹里的.gitignore文件——因为如果文件夹被整体忽略,Git不会扫描其内部任何文件,必须先让Git能看到这个配置文件。
  • !**/.*:再次反向排除,让Git不再忽略那些带有.gitignore的点开头文件夹,这样Git就会读取该目录下开发者预设的.gitignore规则。
  • !.git/:专门排除.git目录,防止全局规则误忽略Git仓库的核心文件。

注意事项

  • 规则顺序不能乱:必须先写全局忽略规则,再写反向排除规则,否则排除规则会被忽略规则覆盖,无法生效。
  • 若之前已经将某个点开头文件夹提交到Git仓库,需要先执行git rm -r --cached <目标文件夹路径>取消Git对它的追踪,之后新的.gitignore规则才会生效。
  • 该规则会覆盖所有层级的子目录,不管是根目录下的.idea,还是子项目里的.mypy_cache,只要带有.gitignore就会被排除,否则会被忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:15:12