2012-04-03 50 views
15

这看起来很愚蠢,我只是在一个肮脏的工作树上做了一个git stash pop。我不知道有任何方法来保持所需的更改并撤消stash pop。有一个存在吗?或者这样的错误是不可原谅的?撤销脏工作树上的git stash弹出

回答

8

如果您仍然拥有该存储的SHA1,则可以从中生成一个修补程序(git format-patch SHA1)并将该修补程序反向应用(git apply -R filename.patch)。

如果您丢失了SHA1,看到How to recover a dropped stash in Git?

+0

如何使用format-patch命令创建一个patchfile? – meson10 2013-10-06 03:17:02

+0

给定的命令确实为提交'SHA1'创建了一个补丁。 – adl 2013-10-07 13:46:38

+1

这似乎并不适用于合并;当我在我的肮脏的工作目录上执行'git stash pop'时,它合并了隐藏的修改,所以'git format-patch SHA1'没有做任何事情。任何解决方法的想法? – Will 2013-11-23 08:28:40

1

git stash pop做两两件事:git stash applygit stash drop。如果您可以使用this question and answers撤消drop,那么您只需撤消apply即可。我不知道如何做到这一点,,但你可以看看git rebase。但adl呢。