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

Git LFS超出1GB存储限额后,如何撤销其对大文件的追踪?

解决Git-LFS超限后停止追踪大文件并恢复推送的方法

别担心,我带你一步步搞定这个问题——既能把大文件改成仅本地存储,又能恢复正常推送代码,完全不用购买存储套餐。

  • 步骤1:确认当前被Git-LFS追踪的文件
    首先,先搞清楚哪些文件在占用LFS配额,运行以下命令列出所有LFS管理的文件:

    git lfs ls-files
    

    你会看到所有被LFS追踪的文件路径,接下来就针对这些文件操作。

  • 步骤2:停止追踪指定大文件
    用git lfs untrack命令停止追踪单个或批量文件:

    • 单个文件:
      git lfs untrack "path/to/your/large/file.zip"
      
    • 批量文件(比如所有.zip格式大文件):
      git lfs untrack "*.zip"
      

    这个命令会自动修改仓库里的.gitattributes文件,移除对应的LFS追踪规则。

  • 步骤3:从Git索引中移除LFS文件记录(保留本地文件)
    接下来要把这些文件从Git的索引中移除,但本地文件会完整保留,运行:

    • 单个文件:
      git rm --cached "path/to/your/large/file.zip"
      
    • 批量文件:
      git rm --cached "*.zip"
      

    --cached参数是关键,它只操作Git仓库的索引,不会删除你本地的文件。

  • 步骤4:检查并更新.gitattributes
    虽然git lfs untrack已经自动修改了.gitattributes,但最好手动检查一下,确保里面没有残留的LFS规则。比如原来类似这样的行:

    *.zip filter=lfs diff=lfs merge=lfs -text
    

    如果还有,直接删除对应的行就行,然后保存文件。

  • 步骤5:提交更改
    把刚才的操作提交到版本历史:

    git add .gitattributes
    git commit -m "停止用Git-LFS追踪大文件,转为本地存储"
    
  • 步骤6:(可选但关键)清理历史中的LFS文件(解决旧提交占用配额问题)
    如果之前已经有提交用LFS追踪了这些大文件,那仓库的历史记录里还保留着LFS的关联信息,推送时还是会触发配额检查。这时候需要重写仓库历史,移除所有LFS相关的追踪记录:

    首先确保你安装了git filter-repo(如果没装,用包管理器安装即可,比如brew install git-filter-repo或sudo apt install git-filter-repo),然后运行:

    • 移除单个文件的历史追踪:
      git filter-repo --path "path/to/your/large/file.zip" --invert-paths
      
    • 移除所有LFS追踪的文件历史:
      git filter-repo --replace-text <(echo 'regex:filter=lfs.* ==> ')
      

    ⚠️ 注意:重写历史会改变仓库的提交哈希,如果是多人协作的仓库,一定要通知所有协作者重新克隆仓库,避免冲突。如果是你个人的仓库,放心操作就行。

  • 步骤7:正常推送代码
    最后,推送你的更改:

    git push origin <你的分支名>
    

    这时候就不会再触发Git-LFS的上传请求,也不会收到配额超限的提示了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:53:34