Я пытаюсь перенести старую версию репозитория git на использование lfs. Ранее я успешно переносил изображения png в lfs, используя git lfs migrate import --everything --include = "*.png"
(я думал, что png предназначено только для больших двоичных файлов в репо).
Теперь я заметил, что там все еще были исходные файлы xcf. Поэтому я попытался перенести это с помощью git lfs migrate import --everything --include = "*.xcf"
.
Однако, когда я сейчас пытаюсь обновить его с помощью git push -f
, я получаю следующую ошибку:
PS C:\Users\Pablo\Dev\war-systems> git push -f
open C:\Users\Pablo\Dev\war-systems\Unity - War Systems\Assets\Plugins\badpix\message-16-help.png: The system cannot find the path specified.
error: failed to push some refs to 'https://gitlab.com/TheOddler/war-systems.git'
Файл message-16-help.png
- это старый файл, который был удален на каком-то этапе разработки. Его нет в HEAD
, но в какой-то момент так и было.
Почему это происходит сейчас? И как мне это исправить?
Если важно, пытаюсь нажать на gitlab.
Это сообщение об ошибке (которое будет улучшено в Git LFS 2.7.0) означает, что вам не хватает всех объектов LFS, которые необходимо отправить. Если вам не хватает объекта LFS, Git LFS попытается найти файл в текущем рабочем каталоге, чтобы включить его, в надежде, что он все еще там. В данном случае это не так.
Вы должны попытаться найти отсутствующий файл .png
, запустив git lfs fetch --all
, а затем повторить попытку. Если это не сработает, ваш репозиторий поврежден и вам не хватает данных. Вы можете попробовать выполнить импорт еще раз со всеми указанными путями или запустить push с GIT_TRACE=1
и найти недостающий объект в выходных данных и скопировать его из другого репозитория, если он у вас есть.
Некоторые из нас предпочли бы избегать git lfs fetch --all
(вероятно, потому, что у нас ограниченное дисковое пространство, и мы работаем с большим репозиторием с богатой историей).
Мне рассказали, как легко обойти эту ошибку, благодаря публикации моего коллеги в Slack годовой давности.
The file
message-16-help.png
is and old file that was deleted at some point in development. It's not in the HEAD, but at some point it was.
По нашему опыту, когда рассматриваемый файл не является файлом, который в противном случае можно было бы ожидать, Git, похоже, не нуждается в более чем пустом файле в этом месте.
> touch message-16-help.png
... должно хватить.