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