Git Missing Commit错误

Alb*_*che 5 git

我们最近更改了存储库的位置,我们发现文件中缺少数月的提交.我们使用Git的旧服务器已关闭,因此无法从那里恢复提交.

这是我得到的错误:

$ git fsck --full
broken link from commit 58ba71d080b1814420bce09c4e505b323fd9cb58
to commit a2e2bde363032b7609616a3152fe048cc5c83715

missing commit a2e2bde363032b7609616a3152fe048cc5c83715

$ git fsck --full
broken link from commit 58ba71d080b1814420bce09c4e505b323fd9cb58
to commit a2e2bde363032b7609616a3152fe048cc5c83715

missing commit a2e2bde363032b7609616a3152fe048cc5c83715

$ git fsck --full
broken link from commit 58ba71d080b1814420bce09c4e505b323fd9cb58
to commit a2e2bde363032b7609616a3152fe048cc5c83715

missing commit a2e2bde363032b7609616a3152fe048cc5c83715

有什么办法可以解决这个问题吗?谢谢!

Jan*_*dec 9

每个克隆都有完整的历史记录,因此自提交发布以来从事该项目的任何人都应该在他们的计算机上使用它.查看任何人的工作目录中的提交,然后将它的包和对象(.git/objects目录的内容)添加到损坏的存储库(只有不存在的文件),再次fsck并重新打包.

如果您没有在任何地方找到它,则无法重建该对象.

  • @Albert:commit(或其他任何东西)的ID是导致其整个历史记录的加密强哈希,因此您无法从中删除任何内容。但是,您可以使用git filter-branch来创建备用历史记录,而无需排除任何情况。此后,每个人都需要切换到新的历史记录。 (2认同)