Я пропускаю кучу объектов LFS в моем git-репозитории *, как на клиентах, так и на сервере. Я знаю, что эти объекты потеряны, и это нормально. К сожалению, это означает, что git lfs fetch --all
или даже git lfs push --all origin
потерпит неудачу.
Я хотел бы удалить «неработающие указатели» из репозитория, либо заменив двоичный файл фиктивным текстовым файлом, либо полностью удалив указатель. Я также знаю, что это связано с переписыванием истории, и это тоже хорошо.
Как лучше всего поступить?
* Чтобы уточнить, мне не хватает некоторых файлов LFS на сервере, но не всех и не всех ревизий этих файлов.
Например, у меня есть файл foo.png, который был изменен в 3 коммитах:
- foo.png (Версия 1, LFS Sha: 03cfd743)
- foo.png (Версия 2, LFS Sha: 661f0797)
- foo.png (Версия 3, LFS Sha: 5fa2f122)
На сервере LFS больше нет версии 2 файла foo.png, поэтому я хотел бы удалить этот коммит из истории. К сожалению, git lfs не сообщает мне, какой коммит нарушен, он просто говорит, что 661f0797
отсутствует.
(Для записи я нашел отсутствующие файлы, поэтому у меня больше нет этой проблемы, но решение все еще должно быть интересным!)