如何恢复由git修改的已添加但未提交的文件

时间:2018-04-04 21:10:26

标签: git github

我做了一件蠢事;我在未提交的本地存储库上执行了“git fetch”。所以我的文件现在被它覆盖了。我怎样才能恢复在这个愚蠢的错误之前的困境?

git_status_1

git_status_2

我做过的事情:

  1. 在web-github-commit上修改一些文件(因为我很愚蠢)
  2. git add。
  3. git commit -m
  4. git push origin branchA - >由于我从网站
  5. 完成的提交而被拒绝了
  6. git reset --hard HEAD ^(因为我真的很蠢)
  7. git push origin branchA - >拒绝,因为遥控器包含我本地没有的工作(与4相同的原因)
  8. git fetch - >计算对象5
  9. git reset --hard HEAD ^(这是我开始认为自己在做什么的时候)
  10. git reset'HEAD @ {1}' - >我的文件被修改了(我很抱歉,我最初认为git fetch使我的生活陷入困境)

1 个答案:

答案 0 :(得分:0)

只是执行git fetch没有触及工作树。 (git pull会尝试,因为fetch后跟merge,但这是另一回事。)

看起来你已经提交了更改 - 但后来又混淆了自己(这对git来说很容易,当然......)

幸运的是,git reflog是你的朋友:它会告诉你你所做的一切,包括沿途的提交哈希。运行它并找到要返回的提交,然后使用git reset --hard <commit>返回到那里。然后,您可以合并所获取的更改,或变基,或者您想要做的任何事情。