Git lfs - "это превышает предел размера файла GitHub 100,00 МБ"

У меня есть некоторые файлы csv, размер которых превышает размер файла github размером 100.00 МБ. Я пытаюсь использовать расширение Git Large File Storage.

https://git-lfs.github.com/

От LFS - "Large file versioning- Version large files—even those as large as a couple GB in size—with Git."

Я применил следующее в папках, вызывающих озабоченность:

git lfs track "*.csv"

Однако, когда я нажимаю:

remote: error: File Time-Delay-ftn/Raw-count-data-minor-roads1.csv is 445.93 MB; this exceeds GitHub file size limit of 100.00 MB
remote: error: File Time-Delay-ftn/Raw-count-data-major-roads.csv is 295.42 MB; this exceeds GitHub file size limit of 100.00 MB

Когда я смотрю на папку, о которой идет речь:

-rw-r-----   1 user  staff    42B 23 Oct 12:34 .gitattributes
-rw-r--r--   1 user  staff   1.3K 19 Oct 14:32 DfT_raw_major_manipulation.py
-rw-r--r--   1 user  staff   1.2K 16 Oct 15:08 DfT_raw_minor_manipulation.py
drwxr-xr-x  21 user  staff   714B 22 Oct 11:35 Driving/
[email protected]  1 user  staff   295M 19 Oct 14:47 Raw-count-data-major-roads1.csv*
[email protected]  1 user  staff   446M 16 Oct 14:52 Raw-count-data-minor-roads1.csv*

когда я vim файл .gitattributes, вы можете увидеть настройку lfs:

*.csv filter=lfs diff=lfs merge=lfs -text

Что я делаю неправильно?

ОБНОВЛЕНИЕ

Когда я запрашиваю

git lfs ls-files

Я ничего не получаю. Это означает, что, несмотря на то, что фильтр .csv успешно применяется к файлу .gitattributes, файлы csv не подхватываются lfs

Ответы

Ответ 1

Простое добавление конфигурации git -lfs в существующий репозиторий не будет ретроактивно конвертировать ваши большие файлы в поддержку LFS. Эти большие файлы останутся в вашей истории, и GitHub откажется от ваших нажатий.

Вам нужно переписать свою историю, чтобы ввести git -lfs в ваши существующие коммиты. Я рекомендую инструмент очистки BFG repo, который добавил поддержку LFS в последнее время.

Вы должны иметь возможность конвертировать историческое использование ваших файлов CSV:

$ java -jar ~/bfg-1.12.5.jar --convert-to-git-lfs '*.csv' --no-blob-protection

Ответ 2

Вчера я столкнулся с той же проблемой и взломал ее. Я не смог нажать, и оказалось, что ни один из моих больших файлов не был в lfs.

Возможно, лучший способ, но это сработало для меня. У меня большое репо с 2,5 гигабайтами данных.

Я настраиваю новое репо, а затем устанавливаю в нем lfs. git lfs init

Затем я настроил различные типы файлов git lfs track "*.pdb" git lfs track "*.dll" Затем я перечислил свои изменения и нажал.

Затем я добавил свои большие файлы. Я использовал sourcetree, и в выходных заметках он указывал на большие файлы, соответствующие моим подстановочным знакам, вместо этого он собирал крошечный txt файл. (извините, я их не записывал, но это должно быть очевидно).

Затем я нажал, и я увидел "пропуски файлов", и нажатие быстро завершилось.

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

Примечание. Я обнаружил, что довольно много файлов, которые соответствовали моим подстановочным знакам, не были выбраны lfs. Подобные файлы в разных папках были подобраны, но не все. Я попытался явно добавить эти файлы, используя полный путь. git lfs track "Windows/bin/myBigFile.dll" но это тоже не помогло. В итоге я отказался из-за временных ограничений.

Вы также должны проверить свой предел хранения с помощью gitHub. Я купил дополнительные 50gig, чтобы покрыть мои требования.

Клонирование репо теперь загружает файлы отдельно, и все, наконец, хорошо работает.

Ответ 3

У меня была эта ошибка:

удаленный: ошибка: Файловый клиент/статический/статический-версия/20171221_221446.psd - 223,61 МБ; это превышает предел размера файла GitHub 100,00 МБ

И поскольку я уже удалил этот файл из этой папки, создал файл .gitignore и попытался совершить пару раз, я не знал, что он кэширован, я не мог нажать на github. В моем случае помогло:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch client/static/static-version/20171221_221446.psd'

Где я разместил полный путь к файлу (от ошибки выше), чтобы удалить его из кеша. После этого нажатие было успешно выполнено

Ответ 4

Если вы знаете, какой коммит ввел большой коммит, вы также можете попробовать сдавить этот коммит с последующими коммитами, которые представили Git LFS.

Например, если большой коммит был три коммита назад (как показано в git status), вы могли бы сделать следующее:

git rebase -i HEAD~3

Затем замените все варианты использования "выбора" после первого на "сквош" в интерактивном диалоге.

Затем

git push origin --force

Ответ 5

Это может помочь вам enter image description here

Click-OriginalWebPage

Только установить lfs в существующее хранилище может быть недостаточно. Вы также можете изменить историю коммитов. Надеюсь, это работа для вас.

Ответ 6

Похоже, вы не инициализировали git -lfs. Попробуйте ввести

git lfs init

Источник: Установка Git LFS