Настройка и использвоание 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, а в основной репозиторий.