git-在迁移之前修复损坏的存储库

时间:2019-07-15 08:04:34

标签: git version-control

我已经启用了git启用的源代码,这些源代码指向不再运行的死服务器。我试图将这段代码连同过去的所有历史记录,标签和分支推送到新的存储库中。

我删除了旧的原点,然后添加了新的原点。在推动时,我发现它已损坏对象。

使用命令git fsck --full我可以看到broken link from to, dangling blop, dangling commit and missing blop.

这是否意味着分支和标签也受到影响?我可以保留一些历史记录,但我需要毫发无损地保留所有分支和标签。

有人可以帮我怎么做。谢谢。

1 个答案:

答案 0 :(得分:1)

  

这是否意味着分支和标签也受到影响?

要视情况而定。

很难对您的问题给出有根据的答案,因为您的情况可能在许多方面都是独特的。根据提供的信息量,根本不可能给出“只需 a b c ”答案。

相反,我将列出与您遇到的问题有关的可能解决方案的来源。

  

从断开的链接

考虑研究接受的“ How to fix git error broken link from tree to tree?”答案。问题本身听起来很像您所看到的。

每个接受的答案似乎都可以通过放弃相关的reflog条目来消除错误报告。

  

悬空斑点

考虑研究“ Recover dangling blobs in git”的答案。

  

悬空提交

这些是不属于任何分支的提交。我会尝试找到所有这些对象,然后在迁移之前将它们放在分支上。请参阅“ Git: what is a dangling commit/blob and where do they come from?”。

  

缺少斑点

看起来您可以通过删除丢失的blob来消除此错误。还是Blob被重命名,而现在是一个悬挂的Blob?考虑研究对“ Git - how to recover from a missing blob ”的公认答案。