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

如何恢复GitHub分支中已删除提交但未推送的文件

找回本地已提交但未推送的删除文件

别慌,这种本地提交后想找回误删文件的情况太常见了,我给你几个实用的解决办法,一步步来就行:

第一步:定位删除文件的提交记录

首先你得找到那个执行删除操作的commit,打开终端输入:

git log --oneline

你会看到一串精简的提交记录,找那条对应你删除4个文件的记录(通常会有类似delete 4 files的备注),记下它的哈希值(就是开头那串7位左右的字母数字,比如a1b2c3d)。

方法一:精准恢复单个/多个文件(推荐)

如果只想恢复那4个被删的文件,而不想改动其他提交记录,用这个方法最稳妥。你可以直接从删除提交的父版本里把文件拉回来:

# 替换成你找到的哈希值,或者如果是最后一次提交,直接用HEAD~1
git checkout <commit-hash>~1 -- path/to/file1 path/to/file2 path/to/file3 path/to/file4

执行完这条命令,那4个文件就会回到你的工作区,之后你只需要再执行git add和git commit,就能把恢复的文件保存到当前分支里。

方法二:撤销整个删除提交

如果你想彻底取消那次删除文件的提交操作(保留历史记录,更规范),可以用git revert:

git revert <commit-hash>

这条命令会生成一个新的提交,自动把之前删除的文件重新添加回来,你的提交历史里会同时保留删除和恢复的记录,适合需要追溯操作的场景。

方法三:回退到删除前的版本(谨慎使用)

如果那次删除提交是你当前分支的最后一次提交,而且之后没有做其他任何修改,你可以直接回退到删除前的版本:

git reset --hard HEAD~1

⚠️ 注意:这个操作会直接丢弃最后一次提交的所有改动,如果你在删除文件后还有其他提交,千万别用这个,会丢失那些提交的内容!

为啥合并其他分支、pull没用?

  • 合并其他分支提示“branch is updated”,说明目标分支和当前分支的差异里不包含你要恢复的文件(或者当前分支的版本已经比目标分支新),所以合并不会帮你恢复。
  • pull是拉取远程仓库的代码,而你删除文件的提交还在本地没推送到远程,远程仓库里根本没有这个删除记录,所以pull自然没用啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:35:40