Настройка и использвоание LFS в git-репозитории
LFS - это плагин к git, позволяющий эффективнее рабоать с большими файлами. В случае использования локального git-репозитория большие файлы размещаются в отдельном каталоге, а в git-репозитории размещаются только ссылки на них. В случае с удалённым git-репозиторием сервер должен поддерживать реализацию LFS-сервера.
Для включения поддержки LFS нужно установить соответствующий плагин:
# apt-get install git-lfs
Теперь поддержку LFS нужно включить в самом репозитории:
$ git lfs install
Для настройки правил, определяющих, какие файлы нужно помещать в LFS, можно воспользоваться командами вида:
$ git lfs track "*.png"
Правила помещаются в файл .gitattributes
, который можно отредактировать самостоятельно в текстовом редакторе. Этот файл нужно не забыть зафиксировать в локальном репозитории для того, чтобы он появился и в удалённом репозитории и удалённый сервер имел возможность в соответствии с правилами из него помещать файлв в хранилище LFS:
$ git add .gitattributes
$ git commit -m "LFS enabled"
Впредь все новые файлы с расширением png
будут попадать в хранилище больших файлов LFS. Для того, чтобы переместить в это хранилище файлы, уже имеюищеся в проекте, можно воспользоваться командой такого вида:
$ git lfs migrate import --no-rewrite -m "Old large files moved to LFS" *.png
В конце команды может быть указано несколько шаблонов или конкретных файлов. Стоит иметь в виду, что правила из файла .gitattributes
действуют только на вновь добавляемые или изменяемые файлы, а git lfs migrate import
действует только на указанные файлы. Таким образом можно добавить файл в LFS вручную, но если для него нет соответствующего правила, то при дальнейших изменениях этот файл будет попадать не в LFS, а в основной репозиторий.