Как переместить файл из обычного git-трекинга на большой файловый сервер? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть файл, который превышает верхний предел 100 МБ для GitHub enterprise.

Он был добавлен в репозиторий до установки поддержки lfs.

Затем я добавил его в git lfs исказал это отслеживать.

matt@ORAC:~/dev$ git lfs ls-files
83274a0d67 * extern/cudnn/bin/libcudnn.so.7.2.1

Однако при нажатии я все равно получаю эту ошибку.

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: File extern/cudnn/bin/libcudnn.so.7.2.1 is 274.67 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB

Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

если перед включением git lfs было зарегистрировано много разных больших файлов, самый элегантный способ, который я видел, - это перенести ваше git-репо на основе официального руководства git-lfs tutorial .единственная плохая часть миграции заключается в том, что история фиксации репо будет переписана, но самое большое преимущество заключается в том, что репо будет намного меньше исходного, поскольку большие файлы полностью удаляются из истории и перемещаются на сервер lfs.

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

0 голосов
/ 02 октября 2018

Попробуйте git add .gitattributes

Если это не сработает, попробуйте

git stash git reset HEAD~ # Or HEAD~X to go back X commits to a point where the file didn't exist git stash pop git add . git add .gitattributes git commit -m "Msg" git push

...