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

Git误提交大文件推送失败,不想丢失本地修改该如何处理?

Git误提交大文件且不丢失本地修改的解决方案

核心原理

仅清理Git提交历史中的大文件记录,完全保留工作区所有现有修改,不需要执行任何会丢弃本地改动的重置操作。

操作步骤

  • 第一步(可选但强烈建议):手动复制整个项目目录到本地其他路径做备份,避免操作失误导致文件丢失
  • 第二步:回到提交大文件之前的提交状态,保留所有工作区修改
    执行命令:
    # 查看提交历史,找到提交大文件之前的正常commit的哈希值(只需要前7位即可)
    git log --oneline
    # 重置HEAD到该正常提交,--mixed参数会保留所有工作区修改,仅清理暂存区和提交历史
    git reset --mixed <你找到的正常commit哈希>
    
  • 第三步:将大文件加入.gitignore,避免后续再次误提交
    打开项目根目录的.gitignore文件,添加以下内容(如果没有.gitignore就新建一个):
    # 忽略本次误提交的大文件
    largefile/*.tar.gz
    largefile/*.txt
    # 如果整个largefile目录都不需要跟踪,可以直接写下面这行
    # largefile/
    
  • 第四步:暂存正常修改,排除大文件的删除记录
    执行命令:
    # 暂存所有变更
    git add .
    # 将大文件的删除记录从暂存区移除,不纳入本次提交
    git reset -- largefile/b_qty.tar.gz largefile/b_qty.txt largefile/s_qty.tar.gz largefile/s_qty.txt
    
  • 第五步:提交并推送
    执行命令:
    # 提交正常变更
    git commit -m "提交功能变更,排除大文件"
    # 推送到远程仓库
    git push origin main
    

验证方式

提交前可以执行git status确认暂存区中没有大文件相关的变更,提交后执行git show HEAD --stat确认最新提交中没有包含误提交的大文件,再执行推送操作即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:15:08