Git已提交大模型文件推送失败 .gitignore对历史提交不生效如何解决
Git提交含大模型文件无法推送的修复方案(不丢失开发进度)
前置确认
你已经完成.gitignore配置,添加了模型文件夹的忽略规则,且需要清理的是本地未推送到远程的最近4次提交,以下操作不会删除你本地的模型文件,也不会改动所有提交中非模型文件的内容与提交记录。
操作步骤
- 第一步:提前备份
先把整个本地仓库文件夹完整复制一份存到其他目录做冷备份,操作失误时可以直接覆盖回滚,完全避免进度丢失风险。 - 第二步:启动交互式变基,修改最近4次提交
在仓库根目录打开终端(直接用PyCharm底部的Terminal面板即可,默认路径就是仓库根目录),执行命令:git rebase -i HEAD~4
执行后会弹出提交列表编辑页,把列表里4个提交前面的pick关键字全部改成edit,保存后关闭编辑页,Git会逐个暂停在这4个提交的节点等待修改。如果操作过程中想放弃本次变基回到初始状态,随时执行git rebase --abort即可。 - 第三步:逐个提交清理大文件追踪记录
每停在一个待修改的提交节点时,按顺序执行以下命令:- 把模型文件夹从Git追踪记录中移除(不会删除本地磁盘上的模型文件):
git rm -r --cached 你的模型文件夹相对路径
比如模型存在根目录的ml_models文件夹下,就替换为git rm -r --cached ml_models/ - 把移除大文件的变更合并到当前提交,保留原提交信息不修改:
git commit --amend --no-edit - 跳到下一个待处理的提交:
git rebase --continue
重复以上3条命令的操作,直到4个提交全部处理完成,变基流程自动结束。
- 把模型文件夹从Git追踪记录中移除(不会删除本地磁盘上的模型文件):
- 第四步:校验结果后推送
执行git log --stat查看最近4次提交的变更文件列表,确认所有提交里都已经不存在模型文件夹下的大文件,且本地模型文件仍在原路径未被删除,就可以正常执行推送操作:不管是点击PyCharm右上角的推送按钮,还是在终端执行git push都能成功。
注意事项
因为你已经提前配置了
.gitignore的模型文件夹忽略规则,这次清理完成后,后续提交不会再自动把模型文件加入Git追踪,无需重复做清理操作。
内容的提问来源于stack exchange,提问作者Dave_G7
相关产品推荐
相关产品推荐

