执行Git Pull后本地代码回退至一个月前,如何恢复丢失的工作?
执行Git Pull后本地代码回退至一个月前,如何恢复丢失的工作?
别慌!Git其实比你想象的更靠谱,你的工作大概率还能找回来,跟着下面的步骤一步步来:
- 首先打开终端(或Git Bash),进入你的项目目录,运行命令:
git reflog。这个命令会列出本地仓库所有HEAD的历史操作记录——哪怕你之前的修改没推到远程,只要曾经提交过本地版本,这里就会留下痕迹,包括那些没被分支引用的提交。 - 在输出结果里,寻找你丢失工作之前的那条提交记录。比如你会看到类似
a1b2c3d HEAD@{3}: commit: 完成了用户中心模块的修改这样的行,前面的哈希值(比如a1b2c3d)就是你需要恢复的版本标识。 - 找到对应的哈希值后,运行命令:
git reset --hard <你的哈希值>,这个命令会把本地仓库强制恢复到你指定的那个版本。注意:这个操作会覆盖当前工作区的所有内容,所以如果现在还有未提交的修改(虽然你说看起来没痕迹,但还是确认下),先确保这些内容是你不需要的。
如果上面的方法没找到目标记录(比如你之前的修改根本没提交,只是保存在工作区或暂存区),可以试试这个兜底方案:
- 运行命令:
git fsck --lost-found,这个命令会扫描Git仓库里所有未被引用的对象,把它们放到项目目录下的.git/lost-found/other文件夹里。 - 进入这个文件夹,用文本编辑器逐个打开里面的文件,找到你丢失的代码片段,然后复制回你的项目中。这个方法比较繁琐,但如果之前没提交过本地版本,这是找回内容的最后机会。
备注:内容来源于stack exchange,提问作者Matthew Swallow
相关产品推荐
相关产品推荐

