检索一个已删除的储藏,该储藏不是类似于储藏的提交

7

我按照这里的指示尝试恢复一个我不小心删除的存储,但当我尝试应用它时,我收到了一个错误消息:

boonie@elementary:~/akanbar-system$ git fsck --unreachable
Checking object directories: 100% (256/256), done.
Checking objects: 100% (702/702), done.
unreachable commit 0f34656bf920ac827702190de57459f77e8310ec
unreachable blob 3af4303a950ade7cca4c8c20b10404bc95b30605
unreachable commit f7142808a8b972f7ec259ca4a3c71c10a9549396
boonie@elementary:~/akanbar-system$ git stash apply 0f34656bf920ac827702190de57459f77e8310ec
'0f34656bf920ac827702190de57459f77e8310ec' is not a stash-like commit

我尝试过寻找解决方案,但是没有找到。请帮忙!

解决方案:伙计们,我不确定这个方法是如何起作用的,但是我应用了第二个无法访问的提交而不是我想要的第一个提交,并恢复了一切。它们必须以某种方式相互连接。希望这能帮助未来的某个人,如果不能,下面回答其他方法的人也会有所帮助!


有多种原因会导致某些提交变得“不可访问”,放弃存储是其中之一,但重新定位、修改提交和从远程获取已删除的分支也可以算作这种情况。 - Ferrybig
1个回答

15

恢复丢失的存储库

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

  2. 您可以通过重置或切换到另一个分支来获取它。

    对于重置: git reset -- hard <hashCode>

    对于切换: git branch <desire_branch_name> <hashCode>


你和 gitk 真是救星啊,谢谢! - Ramon Dias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接