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

无法推送至master分支时,如何清理Git历史并更新远程仓库?

Git历史中移除大型.CSV文件的问题与解决

问题背景

  • 本人Git基础知识薄弱,需移除仓库历史中的大型.CSV文件(因文件后缀为大写,未被.gitignore拦截)
  • 本地已完成历史清理操作,.git目录大小从2GB降至400MB,但因管理员禁止直接推送至master分支,无法将清理结果同步到远程仓库;曾在分支执行相同清理步骤并创建PR,但无效果

尝试的本地清理方法

方法1:使用git filter-branch

git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch -r '*.CSV'" \
--prune-empty --tag-name-filter cat -- --all

方法2:使用git filter-repo插件

git gc
git filter-repo --replace-refs delete-no-add --strip-blobs-bigger-than 50M
git reflog expire --expire=now --all
git gc --aggressive --prune=now

解决结果

清理Git历史后,常规操作是执行强制推送命令同步远程:

git push origin master -f

但此类修改仓库历史的操作必须直接修改主分支,分支清理后提PR无法生效。经确认后,由管理员协助完成了强制推送操作,问题已解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:35:21