在git stash pop之后撤消git reset --hard

时间:2014-12-11 20:04:32

标签: git git-stash git-reset

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

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

2 个答案:

答案 0 :(得分:6)

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

我使用哈希值git stash applygit reset来解决合并冲突的方式。

很抱歉,如果这是一个git-noob问题和答案。希望这有助于其他人。

答案 1 :(得分:1)

git help stash

  

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

所以你藏匿的东西仍在你的藏匿列表中,只需git stash list即可找到它。