仅从对象恢复Git存储库

时间:2011-04-23 23:14:20

标签: git data-recovery disaster-recovery

我有一个Windows框,它已经把它删除了大部分Git存储库(必须使重要的工作检测器绊倒;)。我所剩下的(我能找到的)就是物体。我也不确定对象集合的完整程度。是否可以从对象中恢复东西?据我所知,对象树是完整的。所有包装和松散的物品都到位;我只是没有元数据来说服Git。

3 个答案:

答案 0 :(得分:9)

我要尝试的第一件事是用git init初始化一个新的存储库。然后我将对象目录从死存储库复制到新的存储库中。然后我在新的存储库中运行git fsck

运气好的话,你会看到很多悬空的东西,而且运气稍微好一些悬挂的物体会提交物体,这将是丢失树枝的秘诀。

如果您在这些提交上运行git show和/或git log,您可能会识别出某些分支。

要“恢复”它们,您只需使用git branch重新创建命名分支。

答案 1 :(得分:0)

如果您还没有尝试git checkout master,我会从那开始。

答案 2 :(得分:0)

尝试使用这篇文章

How to recover Git objects damaged by hard disk failure?

该答案可能包含一些* nix相关信息。如果有帮助,请告诉我。

我看看它做了什么。