我在一些文件和一些新文件中进行了更改
[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
我该怎么办?发生了什么事?
我发现官方文件有解决方案。
Recovering stash entries that were cleared/dropped erroneously
如果错误地删除或清除隐藏条目,则不能通过正常的安全机制恢复。但是,您可以尝试下面的咒语以获取以下存储项列表:仍在您的存储库中,但无法再访问:
git fsck --unreachable |
grep commit | cut -d\ -f3 |
xargs git log --merges --no-walk --grep=WIP
您是否尝试过使用:
git stash list
您应该具有已完成的存储清单。然后,您可以选择要应用的一个:
git stash apply stash@{1}
在应用隐藏之前,我想您想在运行第一个git pull之前将HEAD放在相同的位置。