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

已提交大文件后文件变小,如何向GitHub推送提交?

解决GitHub推送因历史大文件失败的问题

你的问题出在Git会检查所有提交历史里的文件大小——哪怕最后一个提交把文件改小到65MB,第一个提交里的100MB版本依然在历史记录里,触发了GitHub的限制。下面给你两种可行的解决办法:

方案一:彻底清掉历史里的大文件

如果不需要保留那个大文件的历史版本,直接用git filter-repo重写历史,把它从所有提交里删掉:

  • 打开终端(RStudio里可以点Tools→Shell调出)
  • 运行命令,把<大文件的完整路径>换成你实际的文件路径:
    git filter-repo --path <大文件的完整路径> --invert-paths
    
  • 重写完成后,强制推送到远程仓库(替换成你的分支名,比如main):
    git push --force origin main
    

    注意:强制推送会覆盖远程分支的历史,要是有其他同事一起用这个仓库,得提前跟他们说一声同步修改。

方案二:用Git LFS接管历史中的大文件

如果想保留该文件的所有历史版本,就用Git LFS来存储大文件的各个版本:

  • 先在本地初始化LFS:
    git lfs install
    
  • 跟踪你的大文件:
    git lfs track "<大文件的完整路径>"
    
  • 把生成的.gitattributes文件提交:
    git add .gitattributes
    git commit -m "用Git LFS跟踪大文件"
    
  • 重写历史,让LFS接管所有历史里的这个大文件:
    git filter-repo --force --blob-cat-all 'git lfs migrate import --no-rewrite --stdin'
    
  • 最后强制推送到远程:
    git push --force origin main
    

RStudio后续操作说明

做完上面的终端命令后,回到RStudio,它会自动识别仓库的变更,之后你依然可以用熟悉的「Git」标签进行常规的提交、拉取和推送操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 11:47:43