如何避免将包含大文件的Git本地错误提交推送到远端
操作方案
你现在有2笔未推送的本地提交,前一笔提交包含误加的大体积out目录,后一笔仅新增了.gitignore规则,要彻底清除大文件的提交痕迹、避免推送到远端,可以选以下任意一种方案操作:
方案1:软重置后重新提交(操作门槛最低)
- 执行软重置回到坏提交的前一个节点,此时所有工作区文件都会完整保留,不会丢失现有修改:
git reset HEAD~2 - 确认.gitignore已经正确配置了out、
./third_party/instrumented_libraries/binaries/的忽略规则后,重新提交当前的正确内容:
git add . git commit -m "自定义提交信息,例如:完善.gitignore排除大文件目录"
- 此时本地仅剩下1笔干净的提交,直接push即可,完全不会包含之前误加的大文件。
方案2:交互式变基修改历史(适合需要保留提交信息的场景)
- 执行交互式变基命令编辑最近2笔提交:
git rebase -i HEAD~2 - 在弹出的编辑界面中,把包含out的那笔坏提交前面的
pick修改为drop,保存退出后变基会自动执行,直接删掉那笔坏提交 - 变基完成后确认当前最新提交内容正确,直接push即可。
验证方法
操作完成后可执行git ls-files | grep out验证out目录是否还在git的跟踪列表内,如果没有输出就说明已经完全移除跟踪,不会被推送到远端。
内容的提问来源于stack exchange,提问作者Sebi
相关产品推荐
相关产品推荐

