【问题标题】:how to redo discarded local changes in git?如何重做git中丢弃的本地更改?
【发布时间】:2017-04-22 18:41:37
【问题描述】:

让一个文件 a 被 git 跟踪并在本地修改。 而且,那个文件也在藏匿处。

然后:

如果你做到了git stash pop,请参阅this link

如果你不小心只做了这个git checkout a,你就输了。

这会丢弃文件中的所有更改。

如何撤消此操作?

我在reflog 中没有看到这个操作。

不存在 pop 后的存储(未列出),但在 .git 目录中的某处是否有任何历史记录?

【问题讨论】:

标签: git git-checkout git-reflog


【解决方案1】:

reflog 只跟踪分支提示何时更新,因此我不希望在那里看到您的更改。

来自doc

参考日志,或“reflogs”,记录分支的提示和 其他引用已在本地存储库中更新。

很抱歉,在这种情况下使用 checkout 意味着这些更改将丢失。

stash 可能是更安全的选择。

编辑:

如果这种损失很严重,您可以通过查看@jthill 对原始问题的评论进行一些挖掘

【讨论】:

  • 那个文件在poped stash中,它有什么改变吗?
  • @ups 从你的存储堆栈中弹出东西会将它们从该堆栈中删除,所以我认为它仍然丢失了......但是如果你使用“应用”而不是“弹出”它仍然可以检索。您确定您的更改不是之前提交的一部分吗?
猜你喜欢
  • 2015-03-08
  • 2014-03-31
  • 2011-04-22
  • 1970-01-01
  • 2012-12-20
  • 2012-03-16
  • 2014-01-24
  • 2016-10-28
相关资源
最近更新 更多