通过git pull覆盖的更改如何恢复

3
我在使用 git 时遇到了一个问题,即我无法检索被 git pull 覆盖的更改。
我开始在没有 GitHub 存储库的项目上工作,然后稍后创建了存储库。创建存储库时我 fork 了它,并且还包括一个 README 文件。
我使用 git add 添加了我想要推送到存储库中的文件,但后来意识到应该先从 GitHub 存储库中拉取 README。
在拉取之后,我尝试推送我的更改,但是却得到了 "Everything up-to-date" 的消息。
我使用 ls 命令发现由 git add 添加的文件被删除并替换为 README.md。
这些是我执行的命令:
commands 使用 git log 只显示其他人在 README 上工作时进行的提交。考虑到我没有进行任何提交,我认为这是可以预料的。
使用 git reflog 显示我进行了一次拉取 (HEAD@{0}),但是使用 git reset --hard HEAD@{0} 并没有做任何事情。我还尝试过 git reset --hard HEAD@{"20 minutes ago"},但只收到警告说日志只回溯到我的第一次拉取。 有没有办法恢复被拉取覆盖的未提交更改? 编辑:
我很抱歉没有认真调查,我注意到侧边栏有一个与此问题重复的问题:Git pull deleted uncommitted changes 我将使用 lost-found (cd .git/lost-found/other) 尝试恢复我的更改。 是否有比 lost-found 更简单的方法来恢复更改?这就是新问题。如果没有,我将用我正在使用的方法回答自己。
1个回答

3
如问题中所提到的,我使用了git的lost-found解决方案来恢复我的更改。
我使用cd .git/lost-found/other/进入丢失和找回的地方,找到了所有文件。
我打开目录中的每个文件以查看它的名称,然后将其移动到正确的目录中并使用正确的名称。
我使用git add添加了这些更改并进行了提交,现在我不会再次丢失它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接