【问题标题】:How to undo git reset --soft to get my changes back?如何撤消 git reset --soft 以恢复我的更改?
【发布时间】:2014-01-29 01:20:37
【问题描述】:

我在使用 git commit 提交的目录中有一些本地更改。后来我意识到我的更改错误地破坏了我的构建。所以我在我的仓库中做了一个git reset --soft。 但我搞砸了,因为我没有备份所有未完成的更改,因为其中一些确实包含我想要的新功能。有关如何撤消 git reset --soft 操作的任何帮助,以便我可以取回已提交的更改。

【问题讨论】:

  • 之前的提交应该还在 reflog 中。但是,如果您进行了软重置,这些更改不应该还在您的工作副本中吗?
  • 您好,感谢您的指点。实际上我刚刚发现的是我忘记为我的一些本地文件做一个“git add”。因此,当我实际上首先进行了提交时,那些处于“暂存”阶段的本地文件的所有更改都已提交并且未暂存的更改丢失了..现在看来我完全搞砸了。有出路吗?

标签: git git-commit git-reset


【解决方案1】:

$ git reflog 你应该找到一些你的提交。找到要移动到的最新提交后

您应该重置回您的提交 ID $ git reset _Your_Hash_,因为 $ git reset --soft 只是重置文件而不是索引或工作树。

【讨论】:

  • 我在git status 中还有很多变化。在git reset --soft 之前这些都不存在,所以这个答案作为一般的 undo-this-git-command 似乎不完整。
  • 非常感谢,当我执行 git reset --soft HEAD~26 而不是 16 并强制推送时,我惊慌失措。
猜你喜欢
  • 1970-01-01
  • 2021-05-14
  • 2018-06-17
  • 2021-02-17
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 2015-09-15
相关资源
最近更新 更多