我在执行复杂的合并之前隐藏了一些本地更改,进行了合并,然后在运行git stash pop
之前愚蠢地忘记了提交。流行音乐创建了一些问题(在大代码库中调用错误的方法),这些问题很难被追踪。我跑了git stash show
,所以我至少知道哪些文件被更改了。如果没有别的,我想这是一个提供更多的教训。
我的问题:是否可以在不撤消合并的情况下撤消隐藏弹出窗口?
答案 0 :(得分:64)
尝试使用How to recover a dropped stash in Git?查找您弹出的藏匿处。我认为存储总是有两个提交,因为它保留了索引和工作副本(所以索引提交通常都是空的)。然后git show
他们看到差异并使用patch -R
取消申请。
答案 1 :(得分:33)
来自git stash --help
Recovering stashes that were cleared/dropped erroneously
If you mistakenly drop or clear stashes, they cannot be recovered through the normal safety mechanisms. However, you can try the
following incantation to get a list of stashes that are still in your repository, but not reachable any more:
git fsck --unreachable |
grep commit | cut -d\ -f3 |
xargs git log --merges --no-walk --grep=WIP
这比同样情景下的接受答案更能帮助我。
答案 2 :(得分:0)
如果您的合并不太复杂,另一个选择是:
之后,只剩下您过早丢弃的藏品所带来的更改。