未执行推送操作,如何恢复昨日的Git状态?
恢复被
git reset --hard origin/master删除的本地未推送内容 按以下步骤尝试恢复,优先级从高到低:
用Git查找丢失的提交/对象
Git不会立刻彻底清理未被引用的对象,哪怕你重启过电脑。运行这个命令:git fsck --lost-found执行后,Git会在
.git/lost-found/commits和.git/lost-found/other里生成丢失的提交文件。你可以逐个用git show <提交哈希值>查看内容,找到你昨晚的状态后,用git reset --hard <提交哈希值>恢复。检查VS Code的本地文件历史
VS Code默认会保存文件的本地修改快照,哪怕你关过编辑器。打开VS Code后,右键点击原目录位置,选择**「本地历史记录」→「显示历史记录」**,里面可能有你昨晚的修改版本,直接恢复即可。查看系统回收站或备份
Windows用户检查回收站,Mac用户看废纸篓,说不定被删除的目录还在里面。如果开启了系统备份(比如Mac的Time Machine、Windows的文件历史),也可以从备份里恢复对应目录。检查Git stash记录
如果你之前用过git stash暂存过修改,运行:git stash list要是有记录,用
git stash apply <stash名称>就能恢复暂存的内容。
⚠️ 注意:如果以上方法都没用,且没有其他备份,那数据大概率找不回来了——因为未推送的本地提交在git reset --hard后,没有分支、标签或stash指向它,要是系统自动执行了git gc清理,这些对象就会被彻底删除。
内容的提问来源于stack exchange,提问作者user3541032
相关产品推荐
相关产品推荐

