我的 git 存储库* 中缺少一堆 LFS 对象,无论是在客户端还是在服务器上。我知道那些物品丢失了,没关系。不幸的是这意味着git lfs fetch --all
甚至git lfs push --all origin
将失败。
我想从存储库中清除“损坏的指针”,方法是用虚拟文本文件替换二进制文件,或者完全删除指针。我也知道这涉及重写历史,这也很好。
最好的继续方式是什么?
*澄清一下,我失踪了some服务器上的 LFS 文件,但不是所有文件,也不是这些文件的所有修订版。
例如,我有 foo.png,已在 3 次提交中修改:
- foo.png(版本 1,LFS Sha:03cfd743)
- foo.png(版本 2,LFS Sha:661f0797)
- foo.png(版本 3,LFS Sha:5fa2f122)
LFS 服务器不再有 foo.png 版本 2,所以我想从历史记录中删除该提交。不幸的是 git lfs 并没有告诉我哪个提交被破坏了,它只是告诉我661f0797
不见了。
(根据记录,我已经找到了丢失的文件,所以我不再遇到这个问题,但解决方案应该仍然很有趣!)
如果您仍在寻找一种方法来查看哪些提交受到影响,请获取丢失的 LFS 对象 ID 并使用此命令来查找提交:
git log --source --all -p -S <LFS-OBJ-ID>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)