远程Ubuntu服务器Git仓库中误删未提交的.py文件恢复求助
恢复Git仓库中误删的未提交.py文件
方法1:利用Git对象库恢复(优先尝试)
Git会将文件内容以blob对象存储在.git/objects目录中,只要该文件曾被Git追踪过(比如执行过git add,或VS Code的Git插件自动暂存过),大概率能找到残留对象:
- 执行命令导出所有未被引用的Git对象:
命令会把孤立的blob(文件内容)、tree等对象导出到git fsck --lost-found.git/lost-found/other/目录。 - 遍历目录查找目标.py文件内容:
也可以筛选Python特征内容缩小范围:for file in .git/lost-found/other/*; do git cat-file -p "$file"; donefor file in .git/lost-found/other/*; do git cat-file -p "$file" | grep -q "def\|import" && echo "疑似Python文件:$file" && git cat-file -p "$file"; done - 找到目标内容后,导出为文件:
git cat-file -p <找到的blob-id> > restored_important.py
方法2:从暂存区恢复
如果文件删除前曾执行过git add(即使未提交),可尝试从暂存区提取:
- 查看暂存区文件记录:
git ls-files --stage - 找到对应文件后恢复:
注意:此方法恢复的是最后一次git checkout -- <文件名>git add时的版本,后续未暂存的修改需用方法1找回。
方法3:检查Git Stash
如果误操作将修改存入了stash,可查看并恢复:
- 列出所有stash记录:
git stash list - 恢复指定stash(示例为第一条记录):
git stash apply stash@{0}
方法4:VS Code远程缓存(备选)
若通过VS Code远程SSH操作服务器,本地客户端可能缓存过文件版本:
- 打开VS Code「文件」菜单,选择「打开最近的文件」,查看是否有目标文件的历史版本;
- 或在「源代码管理」面板点击「更多操作」(三个点),选择「显示本地历史」,查找文件历史记录。
内容的提问来源于stack exchange,提问作者Holyamirali
相关产品推荐
相关产品推荐

