Используйте GIT LFS для отслеживания большого двоичного файла без расширения файла.

Внутри фреймворков iOS находится бинарный файл, не имеющий расширения. Мой двоичный файл превышает ограничение размера github в 100 МБ.

  • Я настроил LFS, как указано здесь
  • Я пытался указать LFS отслеживать мой двоичный файл по имени: git lfs track 'MyFramework'
  • Я пытался указать LFS отслеживать мой двоичный файл по пути: git lfs track 'path/to/MyFramework'
  • Никакой сделки в любом случае! Сервер Github по-прежнему отвечает, говоря мне, что файл слишком велик.

Любые идеи?


person shmim    schedule 11.02.2016    source источник


Ответы (3)


В git-lfs v1.1.1 хорошо работает отслеживание, такое как git lfs track 'path/MyFramework'. Вы можете проверить, правильно ли git-lfs отслеживает файл, с помощью «ls-files».

$ git lfs ls-files
828a9ca55c * path/MyFramework

Если git уже отслеживает файл, git-lfs его не отслеживает. Я думаю, вам нужно удалить файл отслеживания MyFramework, а затем добавить git lfs track .., а затем снова зафиксировать его.

person Outsider    schedule 11.02.2016
comment
Если git уже отслеживает файл, git-lfs его не отслеживает. Это билет, спасибо! - person shmim; 11.02.2016

Некоторые примечания для тех, кто находит это:

  • Как сказал Outsider, вы должны добавить файл в GIT LFS, прежде чем добавлять его в GIT: git lfs track 'path/to/file
  • Если файл уже находится в GIT, его необходимо сначала удалить. Если вы уже передали файл локально в GIT в прошлом, у вас есть законная проблема. Вы не сможете зафиксировать локальное удаление файла, так как удаленному репозиторию сначала потребуется файл, прежде чем его удалять. Я работал над этим, вернув репозиторий в состояние до того, как существовал большой файл, используя команду, указанную здесь. Если вы не можете этого сделать, вам придется решить эту проблему каким-то другим способом. GIT бесконечно гибок, хотя и непрозрачен...
  • Прежде чем git lfs-ls-files подтвердит, что LFS отслеживает ваш файл, вы должны добавить файл в действующий GIT: git add someFile
  • Мой клиент GIT (Gitbox), похоже, не знает, как работать с GIT LFS, поэтому мне нужно было (по крайней мере, в первый раз) добавить, зафиксировать и отправить (см. здесь) в командной строке.
person shmim    schedule 12.02.2016
comment
Можете ли вы расширить это утверждение? You won't be able to commit your local deletion of the file, as the remote repo will first need to have the file before deleting it.. Я не понимаю, почему простой возврат коммита, который добавил файл, не сработает в этом случае. - person johnny kehr; 28.02.2020

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

Добавление этого в файл .gitattributes работало для поиска всего, что не имеет расширения в репо:

* filter=lfs diff=lfs merge=lfs -text # Include everything
/**/ -filter=lfs -diff=lfs -merge=lfs -text # Exclude directories
*.* -filter=lfs -diff=lfs -merge=lfs -text # Exclude anything with an extension
person Ozer Chagatai    schedule 30.05.2019