Git LFS — это расширение командной строки и спецификация для управления большими файлами с помощью Git.
Клиент написан на Go, с предварительно скомпилированными бинарниками доступными для Mac, Windows, Linux и FreeBSD. Подробнее можно узнать на веб-сайте, где представлен обзор возможностей.
Дистрибутивы в форматах Debian и RPM доступны с сайта packagecloud, см. инструкции по установке на Linux.
Бутылочки Homebrew распространяются через менеджер пакетов Homebrew и могут быть установлены с помощью команды brew install git-lfs
.
Git LFS включен в дистрибутивы Git для Windows. Альтернативно, вы можете установить последнюю версию Git LFS с помощью менеджера пакетов Chocolatey.
Бинарные пакеты доступны для Linux, macOS, Windows и FreeBSD. Эти пакеты содержат скрипт, который выполнит следующие действия:
$PATH$. В частности, на Windows вам может потребоваться перезапустить командную строку, чтобы изменения в
$PATH$` вступили в силу и Git мог найти бинарник Git LFS.git lfs install
, которая выполнит необходимые глобальные конфигурационные изменения.```ShellSession
$ ./install.sh
Обратите внимание, что дистрибутивы Debian и RPM собраны для нескольких Linux-дистрибутивов и версий как для amd64, так и для i386.
Для архитектуры arm64 сборка производится только для последних версий Debian из-за стоимости эмуляции.
#### Из исходников
- Убедитесь, что у вас установлена самая новая версия Go, GNU Make и стандартной Unix-совместимой среды сборки.
- На Windows установите `goversioninfo` с помощью команды `go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest`.
- Выполните команду `make`.
- Разместите бинарник `git-lfs`, который находится в директории `bin`, в вашей системной переменной окружения `$PATH` или эквивалентной.
- Git LFS требует выполнения глобальных конфигурационных изменений один раз на машине. Это можно сделать, выполнив команду: `git lfs install`.
#### Проверка выпусков
Выпуски подписываются с помощью ключей OpenPGP одного из членов команды. Чтобы получить эти ключи, вы можете выполнить следующую команду, которая выведет их в стандартный вывод:
```ShellSession
$ curl -L https://api.github.com/repos/git-lfs/git-lfs/tarball/core-gpg-keys | tar -Ozxf -
Получив ключи, вы можете скачать файл sha256sums.asc
и проверить нужный вам файл следующим образом:
$ gpg -d sha256sums.asc | grep git-lfs-linux-amd64-v2.10.0.tar.gz | shasum -a 256 -c
```Для удобства распространителей мы также предоставляем более широкий набор подписанных хэшей в файле `hashes.asc`. Эти хэши находятся вBSD-лицензированнойформе, но могут быть проверены с использованием `shasum` Perl или утилит хэширования GNU, как и те, что в `sha256sums.asc`.## Пример использования
Чтобы начать использовать Git LFS внутри Git-репозитория, который ещё не настроен для работы с Git LFS, вы можете указать, какие файлы должны управляться Git LFS. Это можно сделать, выполнив следующую команду _изнутри Git-репозитория_:
```bash
$ git lfs track "*.psd"
(Где *.psd
— это шаблон имен файлов, которые вы хотите отслеживать. Вы можете узнать больше о синтаксисе этого шаблона здесь).
Примечание: кавычки вокруг шаблона важны для предотвращения расширения шаблона глобальной оболочкой.
После любого вызова git-lfs-track(1)
или git-lfs-untrack(1)
вы должны зафиксировать изменения в вашем файле .gitattributes
. Это можно сделать, выполнив:
$ git add .gitattributes
$ git commit -m "track *.psd files using Git LFS"
Теперь вы можете взаимодействовать со своим Git-репозиторием так же, как обычно, а Git LFS будет управлять большими файлами. Например, изменение файла my.psd
(отслеживается выше через *.psd
):
$ git add my.psd
$ git commit -m "add psd"
Совет: если у вас уже есть большие файлы в истории вашего репозитория,
git lfs track
не будет отслеживать их ретроспективно. Для миграции существующих больших файлов в вашей истории на использование Git LFS используйтеgit lfs migrate
. Например:
$ git lfs migrate import --include="*.psd" --everything
Обратите внимание, что это перезапишет историю и изменит все ID объектов Git в вашем репозитории, как и версию экспорта этой команды.Дополнительную информацию см. в разделе git-lfs-migrate(1)
. Вы можете подтвердить, что Git LFS управляет вашим PSD-файлом:
$ git lfs ls-files
3c2f7aedfb * my.psd
После выполнения ваших коммитов, отправьте ваши файлы на удалённый сервер Git:
$ git push origin main
Загрузка LFS объектов: OnClickListener 100% (1/1), 810 Б, 1.2 КБ/с
# ...
К https://github.com/git-lfs/git-lfs-test
67fcf6a..47b2002 main -> main
Если вы решили, что Git LFS не подходит вам, вы можете преобразовать ваш
репозиторий обратно в обычный репозиторий Git с помощью команды git lfs migrate
.
Например:
$ git lfs migrate export --include="*.psd" --everything
Обратите внимание, что это перезапишет историю и изменит все ID объектов Git в вашем репозитории, как и версию импорта этой команды.
Если есть какие-то причины, по которым всё не работает так, как ожидалось, пожалуйста, сообщите нам об этом в задаче, и мы обязательно поможем или исправим ситуацию.
Git LFS поддерживает список текущих известных ограничений, который можно найти и редактировать здесь.
Текущие выпуски Git LFS будут работать с версиями Git начиная с Git 2.0.0. Однако, для наилучшей производительности рекомендуется использовать более свежую версию Git.Исходный код Git LFS использует модули Go в своей системе сборки, поэтому этот проект содержит файл go.mod
, который определяет путь модуля Go. Однако, мы не поддерживаем стабильный API или ABI на уровне языка Go, поскольку Git LFS предназначен исключительно для использования как скомпилированной утилиты. Пожалуйста, не импортируйте модуль git-lfs
в другие программы на Go и не полагайтесь на него как на зависимость исходного кода.## Нужна помощь?
Вы можете получить помощь по конкретным командам непосредственно:
$ git lfs help <подкоманда>
Официальная документация [docs] содержит справочные материалы и спецификации для этого инструмента. Также есть часто задаваемые вопросы (FAQ), которые отвечают на некоторые распространённые вопросы.
Если у вас есть вопрос о том, как использовать Git LFS, если вы не уверены в чём-то или ищете советы других людей относительно лучших практик или случаев использования, не стесняйтесь начать обсуждение.
Вы всегда можете открыть задачу, и один из участников команды будет ответить вам. Пожалуйста, убедитесь, что вы включаете:1. Вывод команды git lfs env
, который отображает полезную информацию о вашей
Git-репозитории, которую можно использовать при отладке.
2. Любые неудачные команды, повторно запущенные с GIT_TRACE=1
в окружении,
что отображает дополнительную информацию, относящуюся к тому, почему команда
завершилась ошибкой.
Для получения информации о работе над Git LFS и отправке патчей см. файл CONTRIBUTING.md. Связанные проекты указаны на странице Implementations wiki.
См. также SECURITY.md для получения информации о том, как отправлять сообщения о найденных уязвимостях безопасности.## Основная команда
Это люди, составляющие основную команду проекта Git LFS, которая управляет проектом.
В алфавитном порядке:
@chrisd8088 | @larsxschneider |
---|---|
PGP 088335A9 | PGP A5795889 |
Это люди, которые ранее составляли основную команду проекта Git LFS или значительно внесли свой вклад в развитие проекта. Без их помощи Git LFS был бы невозможен.
В алфавитном порядке:
[@andyneff][andyneff-user] | [@bk2204][bk2204-user] | [@PastelMobileSuit][PastelMobileSuit-user] | [@rubyist][rubyist-user] | [@sinbad][sinbad-user] | [@technoweenie][technoweenie-user] | [@ttaylorr][ttaylorr-user] |
---|---|---|---|---|---|---|
[ |
[ |
[ |
[ |
[ |
[ |
[![][ttaylorr-img]][ttaylorr-user] |
[ttaylorr-img]: https://avatars2.githubusercontent.com/u/443245?s=100&v=4[andyneff-user]: https://github.com/andyneff [bk2204-user]: https://github.com/bk2204 [PastelMobileSuit-user]: https://github.com/PastelMobileSuit [sinbad-user]: https://github.com/sinbad [rubyist-user]: https://github.com/rubyist [technoweenie-user]: https://github.com/technoweenie [ttaylorr-user]: https://github.com/ttaylorr
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )