【问题标题】:Restore changes that were overwritten by git pull [duplicate]恢复被 git pull 覆盖的更改 [重复]
【发布时间】:2013-01-30 22:08:42
【问题描述】:

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

我开始了一个没有 GitHub 存储库的项目,后来我做了这个项目。我在创建存储库时对其进行了 fork,其中包含一个 README 文件。

我在本地添加了我想使用 git add 推送存储库的文件,但后来意识到我应该首先从 GitHub 存储库中提取 README

拉取后,我尝试推送我的更改,但收到消息Everything up-to-date

我使用ls命令发现添加git add的文件被删除并替换为README.md

这些是我执行的命令:

使用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) 尝试恢复我的更改。

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

【问题讨论】:

    标签: git git-reflog


    【解决方案1】:

    如问题中所述,我用来恢复更改的解决方案是使用 git 的 lost-found。

    我使用cd .git/lost-found/other/ 将自己带到了失物招领处。

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

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

    【讨论】:

      猜你喜欢
      • 2016-12-11
      • 2013-10-19
      • 2014-07-06
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      • 2013-08-31
      • 2012-11-11
      相关资源
      最近更新 更多