Git -移除缺失的斑点或树

  • 本文关键字:斑点 Git git git-fsck
  • 更新时间 :
  • 英文 :


是否有办法从历史中删除对缺失blob或树的引用?以下是git fsck --full

的输出
broken link from    tree 99fe1a9d46985ca21e88de53a7a290e2b1889722
              to    blob bf70d7b3bf98852e13dd0b3b8499ad5d77f174d9
broken link from    tree e3dbfdf73cb5c9971b95b33da5fc93f5d69acdae
              to    tree 5d02b92042c23945f41c5a895e5fc7f4d5a4988d
missing blob bf70d7b3bf98852e13dd0b3b8499ad5d77f174d9
missing blob 1d918846d68d8a8368cc442b6d5989d275944c39
dangling blob 42c2d0f36c782a48f793f6c381578e0e5611b602
missing tree 5d02b92042c23945f41c5a895e5fc7f4d5a4988d
missing blob e9d2ae0e7d9c30dec40a116a12a97567e29a87d2
dangling blob 1aa5f9b48ea74f4a75aa848c571f223995c36658
dangling blob 94055e2bdcc4399c5563327ff879864c59c95e40
dangling commit 2b46b23ef705d48c03ed2526cad6548d1608644b
missing blob 5f5e29e93984bdb1a4bc3be2ba7ebaba1e595e75

我的猜测是pull, pushgit move被中断。我找出了哪些文件大多数缺失的blobs也提到了,但我无法恢复它们,因为它们已经被修改,我没有办法重建的变化(我认为;但我是新来的)。

gc, prunereflog --expire=now没有帮助。

有没有办法告诉git"没关系,我对当前HEAD的当前状态很满意"?

中断Git不会这样做。在某些更新过程中让系统崩溃(重新启动)可能会这样做,但是普通的中断不会。磁盘故障也会这样做。

参见修复损坏的git存储库和如何修复损坏的git存储库?我会把这个标记为重复,但我不确定哪一个是更好的问答(尽管我自己有点倾向于第二个)。

最新更新