恢复被git pull覆盖的更改

时间:2013-02-14 23:48:27

标签: git git-reflog

我遇到了git问题,我无法检索被git pull覆盖的更改。

我已经开始了一个没有GitHub存储库的项目,后来我做了。我在创建存储库时将其分叉,其中包含一个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

我将使用找不到的(cd .git/lost-found/other)来尝试恢复我的更改。

是否有一种更简单的方法来恢复更改而不是丢失,我想这是一个新问题。如果没有,我会用我正在使用的方法回答自己。

1 个答案:

答案 0 :(得分:1)

正如问题所述,我用来恢复变化的解决方案是使用git的lost-found。

我使用cd .git/lost-found/other/将自己带到丢失的地方并找到文件的位置。

我打开了目录中的每个文件以查看它的名称,然后将其移动到具有正确名称的正确目录。

我使用git add添加更改并提交它们,所以现在我不会再丢失它们。