Как мне клонировать репозиторий, содержащий файлы Git LFS? - PullRequest
0 голосов
/ 24 мая 2019

В моей системе Ubuntu я установил Git LFS и Git и клонировал репозиторий, некоторые из его файлов управляются Git LFS. Но эти файлы не загружались, кроме файла маркера. (Я не осознавал, что это был не весь файл, пока я не проверил размер файла, потому что они отображались в моей файловой системе с правильными именами в нужных местах.)

Я вижу из этого ответа , что git lfs clone устарело, и просто git clone должно работать. Но когда я попробовал это, я запутался. Я привык просто запускать git clone https://foobar.git и позволить ему настроить каталог. Но Git LFS не будет работать, если он не был инициализирован с git lfs install в каждом каталоге, где он используется. (Вот почему это не сработало в первый раз, по крайней мере, теперь я это знаю.)

Итак, я настроил каталог, запустил git init и git lfs install внутри него, а затем запустил git clone https://foobar.git. Кто создаст каталог для репо, вложенного в созданный мной каталог, не так ли? Это как-то не так.

Потребуется несколько часов, чтобы клонировать этот репо, поэтому я хотел бы быть уверен, что я делаю это правильно. Глядя на документацию на GitHub , кажется, что вышеприведенный набор команд верен - если вы все прочитали. Биты информации разделены тысячью слов или около того. Это способ сделать это?

1 Ответ

1 голос
/ 24 мая 2019

git lfs install делает две вещи: устанавливает хуки в вашем локальном репозитории и настраивает вашу глобальную (т.е. пользовательскую) конфигурацию так, чтобы она содержала команды фильтра, необходимые для правильной работы Git LFS.

Если вы еще не находитесь в хранилище, вы, вероятно, захотите запустить git lfs install --skip-repo и позволить ему установить команды фильтра в ваш ~/.gitconfig. Если вы управляете этим файлом самостоятельно, скопируйте добавленные в него строки. Затем перейдите в не контролируемый Git каталог и запустите git lfs env и убедитесь, что последние несколько строк выглядят так:

git config filter.lfs.process = "git-lfs filter-process"
git config filter.lfs.smudge = "git-lfs smudge -- %f"
git config filter.lfs.clean = "git-lfs clean -- %f"

Это покажет вам, что ваша конфигурация настроена правильно. После того, как вы это настроите, просто клонируйте репозиторий и, если он настроен с правильными записями в файле .gitattributes, Git автоматически запустит необходимые файлы Git LFS, и когда Git LFS будет вызван, он установит необходимые крючки.

В Debian пакет Git LFS устанавливает команды фильтра по умолчанию, поэтому он, вероятно, делает то же самое в Ubuntu. Вы можете проверить записи в /etc/gitconfig, и если они присутствуют, вам вообще не нужно ничего делать; все должно просто работать, и git lfs env автоматически покажет вам правильную вещь без какой-либо настройки.

...