首页 > 解决方案 > 意外删除了本地 git 文件(未提交)。有没有办法让他们回来?

问题描述

我对 git 很陌生。我在本地对分支进行了很多更改,并想上传它。但我不小心点击了 github 桌面中的“Fetch origin”,这覆盖了我的本地文件。我丢失了大部分代码。然后我尝试通过进入 git bash 并编写一些命令来修复它(见图),但我认为我让它变得更糟了。

有没有办法恢复我的本地文件?

在 gitbash 中输入的命令的图像。

标签: gitgithub

解决方案


您实际为其创建提交的所有更改仍然可以恢复。其他任何事情,我认为由于git reset --hard [sha]您在终端上发出的命令而消失了。

好的; 在我看来,你不应该在不使用某种 Git GUI 的情况下开始使用 git。那里有很多,大多数应该可以正常工作,但我将专门指导使用GitExtensions,因为我看到你在 Windows 上,而且我知道它非常用户友好。它有一个我在任何其他 GUI 中都没有看到的特殊功能。View > Show reflog. 这会在树视图中向您显示所有已提交的提交,而不仅仅是那些可从分支访问的提交。

  1. 安装 GitExtensions
  2. 使用它打开您的存储库
  3. 选择View > Show reflog references

接下来,仔细环顾四周;是否有迹象表明您目前正处于合并或变基的中间?是否有未分阶段的变化?“提交”旁边的数字显示未暂存更改的数量;如果他们在那里,就提交那些。只要更改使其成为某个提交,它就不会被其他 git 操作真正丢失。而且,如果您有可见的 reflog 引用,您也不会因为使它们无法访问而丢失东西,因此您应该能够随意玩耍并制作分支并获取而不必担心太多。

您可能需要在包含您需要的文件的 reflog 中识别提交,在那里创建一个具有新名称的分支,并将其推送到远程。但是,如果您有更多问题,请通过评论告诉我。


推荐阅读