Git 大文件误提交处理
578 字
3 分钟
Git 大文件误提交处理
Git 大文件误提交处理
大文件误提交会让仓库变慢,甚至导致远程推送失败。常见的大文件包括压缩包、模型权重、数据集、构建产物和日志。
处理时要区分:文件只是被加入暂存区,还是已经进入提交历史。
还没提交
git statusgit restore --staged big-file.zip这只会取消暂存,不会删除工作区文件。
加入 .gitignore
*.zipdist/node_modules/*.pt*.onnxdata/忽略规则只对未被 Git 跟踪的文件生效。已经跟踪的文件需要先从索引移除。
已跟踪但想保留本地文件
git rm --cached big-file.zip然后提交 .gitignore 和索引变化,本地文件仍然保留。
已经进历史
如果大文件已经进入提交历史,普通删除不会减少历史体积。需要使用 git filter-repo 或 BFG 清理历史,但这会影响协作分支,必须谨慎。
实战复盘
把《Git 大文件误提交处理》写成可复用排查记录时,我会保留四类证据:原始现象、执行命令、关键输出、修复后的验证结果。少了其中任何一类,下次遇到类似问题都容易重新猜一遍。
排查类文章不要只写最终命令,还要写为什么先查这里。比如端口问题先看监听进程,Nginx 问题先分清 404 和 403,Python 环境问题先确认解释器路径。
如果修复动作有风险,例如杀进程、删文件、改服务配置,就应该写清回退方式。能恢复,才敢在服务器上操作。
最小验收样例
验收《Git 大文件误提交处理》时,我会保留一条修复前命令和一条修复后命令。前者证明问题存在,后者证明问题已经消失,而不是只凭浏览器或终端感觉判断。
如果这篇文章涉及服务器操作,还要记录当前路径、用户、服务名和关键配置文件。排查记录越能还原现场,下次遇到同类问题越不需要重新摸索。
小结
大文件处理越早越简单。提交前发现只需取消暂存;进入历史后再清理,就会影响整个仓库。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!













