在git stash pop成功后如何恢复我的git stash

问题描述 投票:3回答:2

我在一些文件和一些新文件中进行了更改

[git pull:说我在几个文件中有冲突

我做了:

git stash
git pull
git stash pop

我预计会有冲突,但没有。

相反,现在许多文件都为空。当前未提交的更改显示从这些文件中删除的所有内容。

我看到的解决方案是:克隆存储库。 “以某种方式恢复”我最后弹出的存储库,并将其另存为补丁程序并在那里应用。

我该如何恢复它(它不再在存储列表中)

我看不到最后的藏匿处:

gitk --all $( git fsck --no-reflog | awk '/dangling commit/ {print $3}' )

git fsck --no-reflog | awk '/dangling commit/ {print $3}'

给予:

error: object file .git/objects/02/7745a5151a6237eb1dcd8e4f0df10328809669 is empty
error: object file .git/objects/02/7745a5151a6237eb1dcd8e4f0df10328809669 is empty
fatal: loose object 027745a5151a6237eb1dcd8e4f0df10328809669 (stored in .git/objects/02/7745a5151a6237eb1dcd8e4f0df10328809669) is corrupt

我该怎么办?发生了什么事?

git git-stash
2个回答
0
投票

我发现官方文件有解决方案。

Recovering stash entries that were cleared/dropped erroneously

如果错误地删除或清除隐藏条目,则不能通过正常的安全机制恢复。但是,您可以尝试下面的咒语以获取以下存储项列表:仍在您的存储库中,但无法再访问:

git fsck --unreachable |
grep commit | cut -d\  -f3 |
xargs git log --merges --no-walk --grep=WIP

-3
投票

您是否尝试过使用:

git stash list

您应该具有已完成的存储清单。然后,您可以选择要应用的一个:

git stash apply stash@{1}

在应用隐藏之前,我想您想在运行第一个git pull之前将HEAD放在相同的位置。

© www.soinside.com 2019 - 2024. All rights reserved.