【问题标题】:Undo git reset --hard after git stash pop在 git stash pop 之后撤消 git reset --hard
【发布时间】:2015-02-10 10:39:12
【问题描述】:

我在尝试使用git stash pop 恢复的存储中进行了一些更改。有一些合并冲突,我没有解决它们,而是决定重置它。不幸的是,在愚蠢的时刻,我做了一个git reset --hard,现在所有以前隐藏的更改都消失了。

有没有办法恢复这些更改?我试过git fsck --cache --no-reflogs --lost-found --unreachable HEAD,但列出的提交哈希都没有提到我需要的更改。我还可以做些什么?还是我失去了所有这些工作?

【问题讨论】:

  • 您的存储不会永远丢失;它仍然存在于 Git 的对象数据库中……至少有一段时间。您可能仍然可以检索它。请参阅stackoverflow.com/questions/26190837/…中第 2 项的结尾

标签: git git-stash git-reset


【解决方案1】:

在发布此消息后,我想检查 .git/refs/stash,我认为在弹出后它会是空白的。但是,可能由于合并冲突,它仍然具有我试图弹出的存储的哈希值!

我用散列和git reset 做了一个git stash apply,以懒惰的方式解决合并冲突。

对不起,如果这是一个 git-noob 问题和答案。希望这对其他人有帮助。

【讨论】:

【解决方案2】:

git help stash

应用状态可能会因冲突而失败;在这种情况下,它不会从存储列表中删除。您需要手动解决冲突,然后手动调用 git stash drop。

所以你虽然已经消失的存储仍然在你的存储列表中,只需git stash list 即可找到它。

【讨论】:

    猜你喜欢
    • 2018-05-30
    • 2015-09-15
    • 2010-09-05
    • 2015-01-10
    • 2020-11-16
    相关资源
    最近更新 更多