Git最后一次提交文件内容为空,如何恢复丢失的文件内容?
可尝试的恢复方法
- 查看GitHub仓库的提交详情:本地
git log只显示最后一次提交,但GitHub服务器可能留存了提交的快照。进入仓库的提交页面,点击最后一次提交的哈希值,检查提交内的文件是否真的为空。如果历史提交里曾有有效内容,可直接从该提交中提取文件内容。 - 排查本地Git对象库:Git的文件内容都存在
.git/objects目录的哈希对象中。先执行git fsck --full | grep blob列出所有二进制对象,再用git cat-file -p <blob哈希值>逐个查看,找包含有效代码的对象。 - 检查修改Readme的那台电脑:如果该设备还能访问,查看其本地仓库的
git reflog记录,或者未清理的stash内容,可能留存了原始代码的痕迹。毕竟那次pull操作前,该仓库应该有完整的代码版本。 - 直接从每日备份恢复:你已经将每日文件历史存到其他磁盘,这是最稳妥的恢复方式,优先从备份中提取对应版本的文件内容。
- 找回Git垃圾回收的对象:Git默认会保留过期对象14天,若之前执行过垃圾回收,可运行
git fsck --lost-found,然后查看.git/lost-found/other目录下的文件,这些未被引用的对象可能包含丢失的代码。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

