推送大文件失败后,如何从GitHub Desktop历史恢复误删文件?
如何恢复GitHub Desktop历史记录中的已删除大文件
当然可以恢复这些文件!既然它们还在提交历史里,不管本地原文件有没有被删除,都能从历史提交中提取出来。下面分两种方法给你讲解,选你顺手的操作就行:
方法一:用GitHub Desktop直接恢复
- 打开GitHub Desktop,切换到历史标签页,定位到那个包含大文件的意外提交记录。
- 点击该提交,右侧会展示本次提交的所有更改文件,找到你需要恢复的大文件,右键点击它选择查看文件内容。
- 在弹出的文件预览窗口里,全选并复制内容,然后在本地新建一个同名文件,把复制的内容粘贴进去保存即可。
- 若有多个大文件,重复上述步骤逐个处理就行。
方法二:用Git命令行恢复(更适合多文件场景)
如果你习惯用命令行,或者要恢复的文件数量较多,这种方法效率更高:
- 打开终端(Windows用PowerShell,Mac/Linux用Terminal),切换到你的本地仓库目录。
- 在GitHub Desktop的历史记录里,找到目标提交的哈希值(每个提交右上角都有复制哈希的按钮,点击即可复制)。
- 运行命令提取单个文件:
git show <提交哈希>:<文件路径> > <本地保存文件名>- 举个例子:如果提交哈希是
a1b2c3d,文件路径是assets/big-data.tar,要保存到当前目录,就输入:git show a1b2c3d:assets/big-data.tar > big-data.tar
- 举个例子:如果提交哈希是
- 要是想恢复该提交里的所有文件,可以先创建临时分支:
git checkout -b temp-recovery <提交哈希>,此时你能在这个临时分支里看到所有提交过的文件,复制完成后再切回原分支即可。
额外提醒:你之前因大文件推送失败,后续如果要清理提交历史里的大文件避免再次报错,可以用git filter-repo工具(官方不推荐旧的git filter-branch),不过这属于后续优化步骤,单纯恢复文件的话,上面的方法就足够了。
内容的提问来源于stack exchange,提问作者falcs
相关产品推荐
相关产品推荐

