从master拉取代码后误按ctrl+z丢失改动,再次拉取提示已更新如何恢复
恢复方案说明
该场景下丢失的本地改动绝大多数都可以恢复,再次拉取master提示已经最新是因为当前本地分支提交记录已和远端同步,和本地工作区改动丢失无关,无需重复执行pull操作。
对应操作步骤
- 若你是在终端执行pull的过程中按下
ctrl+z
该操作本质是将git pull进程挂起,没有真的删除本地改动,直接执行fg命令即可将挂起的进程切回前台,进程运行结束后即可看到原有改动。 - 若你之前的本地改动已经执行过
git add或git commit
执行git reflog查看本地Git操作日志,找到pull操作前对应状态的哈希值(格式通常为HEAD@{数字},数字越小对应操作时间越近),再执行git reset --hard <对应哈希值>即可恢复到pull之前的本地状态。 - 若你之前的本地改动仅保存在工作区,没有执行过
git add
直接打开你使用的编辑器/IDE的文件历史记录功能,主流开发工具(VS Code、JetBrains系列等)都会自动缓存文件的修改历史,从历史记录中即可恢复丢失的改动。如果没有对应IDE历史,可以尝试用磁盘文件恢复工具扫描对应工作目录找回文件版本。
内容的提问来源于stack exchange,提问作者user16349989
相关产品推荐
相关产品推荐

