VS Code中误执行Git丢弃操作,如何恢复未提交的本地修改
恢复未提交且已丢弃的文件修改
以下是几种可行的恢复方案,按优先级尝试:
1. 扫描Git对象数据库找回快照
Git会暂存所有处理过的文件内容,哪怕没提交,你可以通过以下步骤查找:
- 执行命令扫描丢失的Git对象:
这个命令会把未被仓库引用的对象(包括你修改过的文件快照)放到项目根目录的git fsck --lost-found.git/lost-found/other/文件夹里。 - 进入该目录,逐个查看文件内容,找到匹配你丢失修改的文件:
cd .git/lost-found/other # 循环打印每个文件的内容,方便查找 for f in *; do echo "--- 文件: $f ---"; cat "$f"; done - 找到目标内容后,直接将文件复制回原路径即可。
2. 检查VS Code本地缓存
VS Code会自动备份打开过的文件,试试这两个方法:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),输入「Reopen Closed Editor」,重新打开之前编辑过该文件的窗口,可能会恢复未保存的修改。 - 查看VS Code的备份目录:
- Windows:
%APPDATA%\Code\Backups - Mac:
~/Library/Application Support/Code/Backups - Linux:
~/.config/Code/Backups
按时间排序文件夹,找到包含目标文件的备份,里面的文件大概率保留了你的修改。
- Windows:
3. 查看系统回收站/垃圾箱
如果你是通过系统右键删除的文件,先检查回收站(Windows)或垃圾箱(Mac/Linux),恢复后再重新处理。
4. 用Git reflog排查操作痕迹
虽然git checkout没效果,但可以尝试查找文件的历史对象:
- 执行命令查找和目标文件相关的所有Git对象ID:
git rev-list --all --objects | grep <你的文件名> - 用
git show <对象ID>查看每个对象的内容,找到匹配的修改版本后,将内容导出到目标文件。
内容的提问来源于stack exchange,提问作者Wassim
相关产品推荐
相关产品推荐

