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

回滚Commit丢失多日进度+GitHub Desktop提交失败文件丢失求助

恢复被Revert的开发进度

别慌,Git的revert操作并没有真正删除你原来的开发提交——它只是生成了一个新提交来抵消原提交的改动,你的进度完全可以找回来,试试这两种方法:

  • 方法1:重新应用原提交
    先找到被revert的那个提交的哈希值:在命令行进入仓库目录,执行git log --oneline,你会看到类似abc123 完成支付模块开发(你的开发提交)和def456 Revert "完成支付模块开发"(对应的revert提交)的记录,复制原提交的哈希值(比如abc123)。
    接着执行git cherry-pick abc123,Git会把原提交的内容重新应用到当前分支,生成一个新提交,你的开发进度就回来了。

  • 方法2:直接撤销Revert操作
    同样用git log --oneline找到revert提交的哈希值(比如def456),执行git revert def456,这个命令会创建一个新提交来抵消之前的revert操作,相当于直接恢复到revert之前的状态。

完成后如果需要同步到远程,执行git push即可。

解决大文件推送失败+本地文件找不到的问题

这个问题分两步处理:先定位大文件,再彻底清理并配置.gitignore:

  1. 定位大文件
    GitHub Desktop看不到文件没关系,用命令行精准查找:

    • 进入本地仓库目录,执行find . -size +100M,这个命令会搜索当前目录下所有大于100MB的文件,直接输出文件的完整路径。
    • 如果是未被Git追踪的文件,也可以用git status或git ls-files --exclude-standard --others查看所有未追踪文件,从中筛选大文件。
  2. 配置.gitignore并清理Git历史

    • 如果文件还没被提交过:
      打开项目根目录的.gitignore文件(没有就新建一个),把找到的大文件路径加进去,比如data/huge-training-set.zip,保存后执行git add .gitignore,git commit -m "忽略大训练数据集文件",之后再尝试推送就不会包含这个文件了。
    • 如果文件已经被提交到Git历史里:
      这时候即使删除文件或加.gitignore,推送还是会失败——因为Git历史里还存着这个大文件。需要用git filter-repo清理历史:
      • 先确保安装了git-filter-repo(可以通过系统包管理器安装,或者从官方源码编译安装)
      • 执行git filter-repo --path data/huge-training-set.zip --invert-paths,这个命令会彻底从Git历史中移除指定的大文件
      • 最后强制推送到远程:git push origin main --force(注意:强制推送会覆盖远程分支,如果你和团队协作,一定要提前告知其他人同步你的操作,避免代码冲突)
  3. 关于GitHub Desktop看不到文件的说明
    大概率是因为文件被加入了.gitignore,或者是未追踪但Desktop没刷新,重启GitHub Desktop就能看到;如果是已经被清理出Git历史的文件,Git不再追踪它,Desktop自然也不会显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:05:14