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

执行git add .后如何移除已暂存的大文件?

彻底移除Git中的大文件

仅暂存未提交的情况

要是这些大文件只是被git add过但还没提交到历史里,这么操作:

  • 先核对.gitignore里的文件路径,确保node_scripts/country_japan/Japan30mDSMv4.tif这类路径没写错
  • 执行命令把文件从暂存区移除(本地文件保留):
    git rm --cached node_scripts/country_japan/Japan30mDSMv4.tif
    
  • 提交这个修改:
    git commit -m "移除暂存区的大文件"
    
  • 之后再推送就不会带这些文件了

已提交到历史的情况

如果这些大文件之前已经被提交过(哪怕你后来删了,Git历史里还存着),推送时还是会触发大小检测,这时候得改写历史彻底删掉:

  • 旧版Git用git filter-branch:
    git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch node_scripts/country_japan/Japan30mDSMv4.tif' --prune-empty --tag-name-filter cat -- --all
    
  • 新版Git推荐用更高效的git filter-repo:
    git filter-repo --path node_scripts/country_japan/Japan30mDSMv4.tif --invert-paths
    
  • 强制推送到远程仓库(注意:改写历史后必须强制推送):
    git push origin --force --all
    
  • 有标签的话也要同步更新:
    git push origin --force --tags
    
  • 最后清理本地冗余的Git对象:
    git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
    git reflog expire --expire=now --all
    git gc --prune=now
    

后续要注意的点

  • 确保.gitignore里的路径完全准确,别再误加大文件
  • 如果是团队协作,一定要告诉其他成员重新拉取仓库,因为历史被改写了,本地旧分支会和远程冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:17:36