我已经启用了git启用的源代码,这些源代码指向不再运行的死服务器。我试图将这段代码连同过去的所有历史记录,标签和分支推送到新的存储库中。
我删除了旧的原点,然后添加了新的原点。在推动时,我发现它已损坏对象。
使用命令git fsck --full
我可以看到broken link from to, dangling blop, dangling commit and missing blop.
这是否意味着分支和标签也受到影响?我可以保留一些历史记录,但我需要毫发无损地保留所有分支和标签。
有人可以帮我怎么做。谢谢。
答案 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 ”的公认答案。