Как правильно загрузить файл размером 200 МБ в GitHub, используя LFS - PullRequest
1 голос
/ 25 мая 2019

Я потратил много часов, пытаясь загрузить базу данных Neo4j в GitHub из командной строки, используя LFS.После создания локального репозитория с git init и фиксации в первый раз у меня возникают проблемы при загрузке.

Если я не ошибаюсь, есть только один файл размером более 100 МБ, один изфайлы ядра базы данных.Поэтому, поскольку существует только один огромный файл, я использовал команду git lfs track "/data/databases/graph.db/neostore.transaction.db.0" (с начальным значением / в пути и без него).Я также пробовал git lfs track "*.db", git lfs track "/data/databases/graph.db/*" и ручные выпуски .gitattributes, но ни один из этих методов не работал.Ошибка заключается в следующем:

CMD error

LFS, похоже, не загружает этот файл, несмотря на инструкции по этому поводу.Моя LFS версия 2.7.2, так что речь идет не об устаревшей версии.Чего мне не хватает?

1 Ответ

1 голос
/ 25 мая 2019

Несмотря на то, что вы, возможно, обновили ветку master для отслеживания большого файла в Git LFS по состоянию на последнюю редакцию, вероятно, существует история, которая содержит большой файл в виде простого объекта Git.GitHub не позволит вам загружать какие-либо большие двоичные объекты размером более 100 МБ в вашей истории.

Чтобы это исправить, вам нужно переписать историю.Для этого вы можете использовать git lfs migrate import, например:

git lfs migrate import --everything --include="*.db.0"

Это переписывает историю всего вашего проекта, включая все ветви и теги, так что во всех ревизиях этот файл является файлом Git LFS.,Вы можете увидеть параметры конфигурации, которые вы можете использовать на странице справки .

Как примечание, Git, даже с Git LFS, как правило, не является хорошим инструментом для обработки скомпилированных, собранных ресурсов, таких какбазы данных.Общая рекомендация заключается в том, что если требуется содержимое базы данных (скажем, для тестов), исходный формат для базы данных включается в репозиторий, а сама база данных создается как этап сборки или тестирования, если это необходимо.Это может сделать или не сделать ваш файл настолько маленьким, что Git LFS не понадобится.

...