我是否可以应用更改

时间:2016-05-23 18:05:17

标签: git git-bash

这是后面的故事:

上周五,在/some-branch上做了一些工作后,我做了一个git stash save,检查了/another-branch,然后检查了git stash pop,一切都转到了地狱。在尝试恢复我收起的更改失败后,我关闭了终端。现在我想再试一次。

根据我的理解,如果我们不进行垃圾收集,那些我发现的更改对应于我在运行dangling blob时看到的git fsck --no-reflog的哈希值。那么我怎样才能弄清楚哪一个对应于上周五的那个藏匿处,以及如何让它恢复生机。或者我可以,而且我已经失去了所有这些变化? :(

2 个答案:

答案 0 :(得分:0)

您是否尝试过git status/some-branch中的/another-branch来确保更改不在您的工作目录中?

如果证明没有结果,请尝试从两个分支git fsck --unreachable。更改可能会消失,但前提是您在隐藏更改之前已经完成了resetpull之类的操作。

答案 1 :(得分:0)

你实际上正在寻找一个悬挂的提交,而不是悬挂的blob。如果您运行git fsck并拥有(小)一组悬空提交,则可以使用git cat-file -p <commit id>检查每个提交,并查看是否有任何提交看起来像您保存的提交。如果你有很多提交,那可能会有很多工作。

另一种选择是,如果您仍有任何剩余物,请运行git reflog refs/stash以查看您已创建的藏匿处的历史记录。不幸的是,一旦你弹出最后一个藏匿点,这些日志就会被删除,所以你可能没有它。

使用上述方法之一找到正确的提交ID后,您可以git checkout <commit id>git branch newbranch <commit id>直接签出提交,或创建指向的新分支提交。

相关问题