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

远程Ubuntu服务器Git仓库中误删未提交的.py文件恢复求助

恢复Git仓库中误删的未提交.py文件

方法1:利用Git对象库恢复(优先尝试)

Git会将文件内容以blob对象存储在.git/objects目录中,只要该文件曾被Git追踪过(比如执行过git add,或VS Code的Git插件自动暂存过),大概率能找到残留对象:

  • 执行命令导出所有未被引用的Git对象:
    git fsck --lost-found
    
    命令会把孤立的blob(文件内容)、tree等对象导出到.git/lost-found/other/目录。
  • 遍历目录查找目标.py文件内容:
    for file in .git/lost-found/other/*; do git cat-file -p "$file"; done
    
    也可以筛选Python特征内容缩小范围:
    for 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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:50:25