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

误执行rm -r删除期末项目,如何从Git提交恢复或成功推送?

解决方法分两步:先恢复本地项目,再处理大文件推送问题

一、快速恢复本地被删除的项目文件

你的项目完整内容已经存在本地Git提交记录里,直接用Git命令就能恢复:

  • 打开项目所在的终端,执行:git checkout HEAD -- .
    这个命令会把HEAD指向的最新提交里的所有文件恢复到本地工作区,不会改动现有提交历史。
  • 或者执行git reset --hard HEAD,这个命令会把整个本地仓库重置到最新提交的状态,适合你没有其他未保存本地修改的场景(你提到这是初始提交,用这个更直接)。

二、处理大文件推送失败的问题

你已经安装配置了Git LFS但推送失败,核心原因是之前的初始提交里已经包含了超100MB的文件,需要先把这个大文件从历史提交中移除,再用Git LFS重新跟踪它:

  1. 先确认大文件的具体路径(比如是assets/large_dataset.tar)
  2. 移除历史提交里的大文件:
    执行git filter-branch --tree-filter 'rm -f assets/large_dataset.tar' HEAD
    这个命令会遍历所有提交(这里仅初始提交),将指定大文件从历史记录中彻底删除
  3. 用Git LFS跟踪该大文件:
    执行git lfs track "assets/large_dataset.tar",这会在本地生成.gitattributes文件,用来标记需要LFS管理的文件
  4. 重新添加并修改初始提交:
    • 执行git add assets/large_dataset.tar .gitattributes
    • 执行git commit --amend,用新的提交内容覆盖原来的初始提交(如果不想修改提交信息,可以加--no-edit参数)
  5. 最后尝试推送:git push origin 你的分支名

如果git filter-branch执行有问题,也可以用更简化的流程修改初始提交:

  • 恢复文件后,执行git rm --cached assets/large_dataset.tar(仅移除暂存区的大文件,本地文件保留)
  • 执行git lfs track "assets/large_dataset.tar"
  • 执行git add assets/large_dataset.tar .gitattributes
  • 执行git commit --amend --no-edit
  • 再执行推送命令即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:17:06