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

如何在Git中忽略多个子目录下同名的build文件夹?

解决Git已提交子目录build文件夹后无法忽略的问题

这是个很常见的Git误区——Git的.gitignore规则只对从未被Git追踪过的文件/目录生效。你之前已经把各个子目录下的build文件夹提交到远程仓库了,所以哪怕后来在.gitignore里加了build/,Git还是会继续追踪这些已存在的目录。

要解决这个问题,你需要先把这些已追踪的build目录从Git的追踪列表里移除,然后提交这个变更到远程,具体步骤如下:

  • 首先,在项目根目录(/myproject)下执行命令,移除所有子目录中build文件夹的追踪状态,但保留本地的build文件(--cached参数是关键,不会删除本地文件):
    git rm -r --cached */build/
    
    如果你只想针对特定子目录操作,也可以指定路径:
    git rm -r --cached sub_prj1/build/ sub_prj2/build/
    
  • 接着,提交这个变更,告诉Git我们不再需要追踪这些build目录:
    git commit -m "Stop tracking build directories in subprojects"
    
  • 最后推送到远程仓库:
    git push
    

完成这些步骤后,远程仓库里的build目录就会被移除,而且之后你在子目录里新建的build文件夹都会被.gitignore的build/规则自动忽略,不会再被提交到远程了。

注意:千万不要漏掉--cached参数!如果直接用git rm -r */build/,会把你本地的build文件也删除掉,这通常不是我们想要的结果。

内容的提问来源于stack exchange,提问作者J. Kotaki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:58:54