Как установить git lfs
Как установить git lfs
Git Large File Storage
Git LFS is a command line extension and specification for managing large files with Git.
The client is written in Go, with pre-compiled binaries available for Mac, Windows, Linux, and FreeBSD. Check out the website for an overview of features.
You can install the Git LFS client in several different ways, depending on your setup and preferences.
Note that Debian and RPM packages are built for all OSes for amd64 and i386. For arm64, only Debian packages for the latest Debian release are built due to the cost of building in emulation.
The binary packages include a script which will:
Releases are signed with the OpenPGP key of one of the core team members. To get these keys, you can run the following command, which will print them to standard output:
Once you have the keys, you can download the sha256sums.asc file and verify the file you want like so:
To begin using Git LFS within a Git repository that is not already configured for Git LFS, you can indicate which files you would like Git LFS to manage. This can be done by running the following from within a Git repository:
(Where *.psd is the pattern of filenames that you wish to track. You can read more about this pattern syntax here).
Note: the quotation marks surrounding the pattern are important to prevent the glob pattern from being expanded by the shell.
You can now interact with your Git repository as usual, and Git LFS will take care of managing your large files. For example, changing a file named my.psd (tracked above via *.psd ):
You can confirm that Git LFS is managing your PSD file:
Once you’ve made your commits, push your files to the Git remote:
Note: Git LFS requires at least Git 1.8.2 on Linux or 1.8.5 on macOS.
If you’ve decided that Git LFS isn’t right for you, you can convert your repository back to a plain Git repository with git lfs migrate as well. For example:
Note that this will rewrite history and change all of the Git object IDs in your repository, just like the import version of this command.
If there’s some reason that things aren’t working out for you, please let us know in an issue, and we’ll definitely try to help or get it fixed.
Git LFS maintains a list of currently known limitations, which you can find and edit here.
Git LFS source code utilizes Go modules in its build system, and therefore this project contains a go.mod file with a defined Go module path. However, we do not maintain a stable Go language API or ABI, as Git LFS is intended to be used solely as a compiled binary utility. Please do not import the git-lfs module into other Go code and do not rely on it as a source code dependency.
You can get help on specific commands directly:
The official documentation has command references and specifications for the tool. There’s also a FAQ on the wiki which answers some common questions.
If you have a question on how to use Git LFS, aren’t sure about something, or are looking for input from others on tips about best practices or use cases, feel free to start a discussion.
You can always open an issue, and one of the Core Team members will respond to you. Please be sure to include:
See CONTRIBUTING.md for info on working on Git LFS and sending patches. Related projects are listed on the Implementations wiki page.
See also SECURITY.md for info on how to submit reports of security vulnerabilities.
These are the humans that form the Git LFS core team, which runs the project.
In alphabetical order:
These are the humans that have in the past formed the Git LFS core team, or have otherwise contributed a significant amount to the project. Git LFS would not be possible without them.
Installing Git Large File Storage
In order to use Git LFS, you’ll need to download and install a new program that’s separate from Git.
Navigate to git-lfs.github.com and click Download. Alternatively, you can install Git LFS using a package manager:
If you install Git LFS with Homebrew or MacPorts, skip to step six.
On your computer, locate and unzip the downloaded file.
Change the current working directory into the folder you downloaded and unzipped.
Note: The file path you use after cd depends on your operating system, Git LFS version you downloaded, and where you saved the Git LFS download.
To install the file, run this command:
Verify that the installation was successful:
If you don’t see a message indicating that git lfs install was successful, please contact GitHub Support. Be sure to include the name of your operating system.
Navigate to git-lfs.github.com and click Download.
Tip: For more information about alternative ways to install Git LFS for Windows, see this Getting started guide.
On your computer, locate the downloaded file.
Double click on the file called git-lfs-windows-1.X.X.exe, where 1.X.X is replaced with the Git LFS version you downloaded. When you open this file Windows will run a setup wizard to install Git LFS.
Verify that the installation was successful:
If you don’t see a message indicating that git lfs install was successful, please contact GitHub Support. Be sure to include the name of your operating system.
Navigate to git-lfs.github.com and click Download.
Tip: For more information about alternative ways to install Git LFS for Linux, see this Getting started guide.
On your computer, locate and unzip the downloaded file.
Change the current working directory into the folder you downloaded and unzipped.
Note: The file path you use after cd depends on your operating system, Git LFS version you downloaded, and where you saved the Git LFS download.
To install the file, run this command:
Verify that the installation was successful:
If you don’t see a message indicating that git lfs install was successful, please contact GitHub Support. Be sure to include the name of your operating system.
Help us make these docs great!
All GitHub docs are open source. See something that’s wrong or unclear? Submit a pull request.
Getting started with Git LFS
Working with large binary files in Git can indeed be tricky. Every time a tiny change in a 100 MB Photoshop file is committed, your repository grows by another 100 MB. This quickly adds up and makes your repository almost unusable due to its enormous size.
But of course, not using version control for your design / concept / movie / audio / executables / work cannot be the solution. The general benefits of version control still apply and should be reaped in all kinds of projects.
Luckily, there’s a Git extension that makes working with large files a lot more efficient: say hello to «Large File Storage» (or simply «LFS» if you prefer nicknames).
Without LFS: Bloated repositories
Before we look at how exactly LFS works its wonders, we’ll take a closer look at the actual problem. Let’s consider a simple website project as an example:
Nothing special: some HTML, CSS, and JS files and a couple of small image assets. However, until now, we haven’t included our design assets (Photoshop, Sketch, etc.). It makes a lot of sense to put your design assets under version control, too.
Although I only talked about «design» files, this is really a problem with all «large» files: movies, audio recordings, datasets, etc.
With LFS: Efficient large file handling
To make this possible, LFS uses a simple trick: it does not keep all of a file’s versions in the local repository. Instead, it provides only the files that are necessary in the checked out revision, on demand.
But this poses an interesting question: if those huge files themselves are not present in your local repository… what is present instead? LFS saves lightweight pointers in place of real file data. When you check out a revision with such a pointer, LFS simply looks up the original file (possibly on the server if it’s not in its own, special cache) and downloads it for you.
Installing LFS
LFS is not (yet) part of the core Git binary, but it’s available as an extension. This means that, before we can work with LFS, we need to make sure it’s installed.
Server
Not all code hosting services support LFS already. As a GitLab user, however, there’s not much to worry about: if you’re using GitLab.com or a halfway recent version of GitLab CE or EE, support for LFS is already baked in! Your administrator only need to enable the LFS option.
Local machine
Your local Git installation also needs to support LFS. If you’re using Tower, a Git desktop client, you don’t have to install anything: Tower supports the Git Large File System out of the box.
If you’re using Git on the command line, there are different installation options available to you:
After your package manager has finished its work, you need to complete the installation with the «lfs install» command:
Tracking files with LFS
Without further instructions, LFS won’t take care of your large file problems. We’ll have to tell LFS explicitly which files it should handle!
So let’s return to our «big Photoshop file» example. We can instruct LFS to take care of the «design.psd» file using the «lfs track» command:
Tracking file patterns
You could also tell LFS to track the contents of a whole directory:
Getting an overview of tracked files
To see a list of the actual files that you’re currently tracking, simply use the git lfs ls-files command:
Track as early as possible
Remember that LFS does not change the laws of nature: things that were committed to the repository are there to stay. It’s very hard (and dangerous) to change a project’s commit history.
This means that you should tell LFS to track a file before it’s committed to the repository.
The ideal moment to configure which file patterns you want to track is right when initializing a repository (just like with ignoring files).
Using LFS in a GUI
Although LFS is not difficult to use, there are still commands to remember and things to mess up. If you want to be more productive with Git (and LFS), have a look at Tower, a Git desktop client for Mac and Windows. Since Tower comes with built-in support for Git LFS, there is nothing to install. The app has been around for several years and is trusted by over 80,000 users all over the world.
Additionally, Tower provides a direct integration with GitLab! After connecting your GitLab account in Tower, you can clone and create repositories with just a single click.
Working with Git
A great aspect of LFS is that you can maintain your normal Git workflow: staging, committing, pushing, pulling and everything else works just like before. Apart from the commands we’ve discussed, there’s nothing to watch out for.
LFS will provide the files you need, when you need them.
In case you’re looking for more information about LFS, have a look at this free online book. For general insights about Git, take a look at the Git Tips & Tricks blog post and Tower’s video series.
About Guest Author
This is a guest post written by Tobias GГјnther, who is part of the team behind the Tower Git client.
Русские Блоги
Как хранить GIT основные файлы?
Автор: Террище, Tencent IEG Инженер разработки приложений
Эта статья в основном объясняет, как управлять большими двоичными дворами на складе Git, как представить то, что работает GIT LFS, работает Git LFS и как использовать GIT LFS.
Эта статья переведена из официального представления Атласского в статье GIT LFS, Atlassian является одним из главных разработчиков GIT LFS. Эта статья представляет статьи GIT LFS Сравнить полномочий, а также очень подробно. Оригинальный адрес:
В то же время эта статья также добавила некоторые из моих личных комментариев, а содержание аннотации будет идентифицировано с синим шрифтом.
Что такое GIT LFS?
\ 2. Когда вы нажимаете новый отправьте на сервер, все файлы GIT LFS, которые вновь толкаемые ссылки на подачу будут переданы из кэша локального GIT LFS в удаленное хранилище GIT LFS с помощью склада Git (т. Е. Содержание файла LFS будет Быть непосредственно из локального кэша GIT LFS передается на сервер хранения удаленного GIT LFS).
\ 3. При оформлении заказа файл указателя заменит файл в кэш локального GIT LFS или загрузите его в область хранения удаленного GIT LFS.
Указатель файлов о LFS:
Чтобы использовать Git LFS, вам понадобится управляемый сервер, который поддерживает Git LFS, например,Bitbucket CloudилиBitbucket Server(GitHub、GitLabGit LFS также поддерживает. Пользователи склада понадобитсяУстановите клиент командной строки GIT LFS(Ссылаться наздесьНа самом деле, лучше), или поддерживает клиентов GUI для Git LFS, например,Sourcetree。
Установите Git LFS.
\ 1. Есть три простых способа установки GIT LFS:
а. Используйте свой любимый менеджер пакетов для его установки. Пакет Git-LFS в доме, макпоров, DNF иpackagecloudЭто доступно в нем; или
б. Скачать и установить на веб-сайте проектаGit LFS;
c. Установите Sourcetree, это бесплатный клиент GIT GUI, в комплекте с GIT LFS.
\ 2. После установки GIT LFS запустите GIT LFS Установите для инициализации GIT LFS (если у вас есть Sourcetree, вы можете пропустить этот шаг):
Вам нужно только один раз запустить Git LFS. После инициализации для вашей системы, когда вы клонируете склад, содержащий содержание GIT LFS, GIT LFS будет автоматически использовать сам.
Создать новый Git LFS Warehouse
Чтобы создать новый склад для Git LFS, вам нужно запустить Git LFS, установившись после создания склада:
Это установит специальный предварительный толкающий на вашем складеГит-крючокЭтот крючок передаст файл GIT LFS на сервер при выполнении Git Push.
всеBitbucket CloudСклад включен автоматически Git LFS. дляBitbucket ServerВам нужно включить Git LFS на параметрах склада:
Когда ваш склад инициализирует GIT LFS, вы можете указать файлы для отслеживания с помощью трека GIT LFS.
Клонирование существующих GIT LFS склад
После установки GIT LFS вы можете использовать команду GitClone как обычно для клонирования склада Git LFS. В конце процесса клонирования Git обнаружит ветку по умолчанию (обычно Master) и автоматически загрузит все файлы GIT LFS, которые вам необходимо выполнить процесс заказа. Например:
Есть 4 файла PNG на складе, отслеживаемых GIT LFS. При выполнении команды GitClone файл GIT LFS загружается одним и загруженным с склада.
Ускорить скорость клона
Если вы клонируете склад, содержащий множество файлов LFS, явно используйте команду GIT LFS Clone для обеспечения лучшей производительности:
Команда GIT LFS CLONE не загрузит файл GIT LFS за раз, но при завершении Checkout загрузите все необходимые файлы GIT LFS. Это использует преимущества параллельных загрузок и значительно снижает количество HTTP-запросов и процессов (это особенно важно для улучшения производительности Windows).
Тянуть и обнаружить
Как и клон, вы можете использовать обычную команду GIT TELL для потягивания склада Git LFS. После завершения потяжения все необходимые файлы GIT LFS будут загружены как часть процесса автоматического обнаружения.
Вам не нужна явная команда, чтобы получить содержимое GIT LFS. Однако, если вы не удалились из-за причины аварии, вы можете скачать все потерянные ток LFS LFS, отправленные с помощью команды GIT LFS PULL:
Ускорить скорость растяжения
Как и команда GIT LFS CLONE, команда Git LFS PULL загрузки файла GIT LFS. Если вы знаете, что вы изменили много файлов с момента последнего съемника, вы, возможно, пожелаете явно использовать команду GIT LFS PULL для загрузки содержимого GIT LFS и отключить автоматически загружать GIT LFS во время обнаружения. Это можно сделать, перезаписывая конфигурацию Git, вызывая GIT Press:
Из-за большого количества контента, вы можете создать простойГит псевдонимЧтобы взять партию Git и Git LFS Pull:
Это значительно улучшит производительность, когда вам нужно будет загрузить большое количество файлов GIT LFS (то же самое, особенно в Windows).
Используйте файл трассировки GIT LFS
При добавлении нового большого типа файла в репозиторий необходимо сказать Git LFS для отслеживания его с помощью команды GIT LFS Track:
После запуска команды Git LFS OFFRACK вы должны снова отправить файл изменений. Гиттрибусов еще раз.
Отправить и нажать
Вы можете отправлять и нажать на склад, содержащий GIT LFS в соответствии с обычными способами. Если вы отправили изменение файла, отслеживаемого GIT LFS, вы увидите какой-то другой выход из Git Push, когда содержимое GIT LFS передается на сервер:
Если файл LFS передается по какой-то причине, толкание будет прекращено, вы можете попробовать еще раз. Как Git, Git LFS Storage такжеАдресация контента (Не адресация имени файла): содержимое хранится в соответствии с ключом, ключ является хэш SHA-256 сама содержимого. Это означает, что переназначивает передачу файлов Git LFS на сервер. Это всегда безопасно; вы не можете покрыть содержимое файла GIT LFS с неправильной версией.
Mobile Git LFS склад между хостом
Чтобы перенести репозиторий Git LFS из управляемого провайдера к другому, вы можете использовать GIT LFS Fetch и GIT LFS Push-командные команды Указанные параметры для использования.
Например, вы хотите поставить все склады Git и Git LFS из имени github Дальний конец движется к названию bitbucket Дистальный конец:
Получить дополнительную историю LFS
GIT LFS Обычно только загружает документы, которые вам нужно представить в представление локальной области. Тем не менее, вы можете использовать команду GIT LFS Fetch Trecent, чтобы заставить Git LFS загрузить дополнительный контент для других недавних пересмотренных филиалов:
Git LFS рассмотрит любые ветви или метки, которые недавно представили более 7 дней. Недавно вы можете настроить количество дней, установив свойство LFS.FetchRecentRefsday:
Тем не менее, вы можете настроить Git LFS для загрузки ранее в ближайшем ветке и метке, настроив свойство LFS.FetchRecentCommitsday:
Пожалуйста, используйте этот параметр с осторожностью: если ветвь движется очень быстро, она может привести к загрузке больших объемов данных. Однако, если вам нужно просмотреть изменения вставки, ветвь представлена или перезаписывается, это может быть полезно.
Удалить локальные файлы GIT LFS
Вы можете использовать Git LFS Brune для удаления файлов из локального кэша GIT LFS:
Это удалит все локальные файлы GIT LFS, которые считаются старыми. Старый файл является следующимеще нетЛюбой файл цитируется:
По умолчанию самое последнее представление является любое представление, которое создается за последние десять дней. Расчет рассчитывается путем добавления следующего:
Вы можете настроить смещение Brunds, чтобы сохранить контент Git LFS дольше:
В отличие от встроенного мусора Git, содержание GIT LFS не обрезает автоматически, поэтому регулярно запускают команду Prune Git LFS, чтобы поддерживать хорошую идею для уменьшения размера локального склада.
И используйте команду Prune-riceverbose git lfs runune-averbose, которую объект GIT LFS будет отделкой:
В качестве дополнительной проверки безопасности вы можете использовать опцию «Отверждаете-транзацию» перед удалением, проверьте, есть ли удаленное хранилище LFS Copy из объекта GIT LFS:
Это заставит процесс обрезки замедляться, но вы можете восстановить все предметы обрезки с сервера, поэтому у вас нет волнующихся. Вы можете настроить свойство LFS.PruneverifyReMotealways через глобальную конфигурацию опции-подтверждения:
Удалить удаленные файлы LFS с сервера
Клиент командной строки GIT LFS не поддерживает файл на сервере, так как удалить их зависит от вашего управляющего поставщика услуг.
В облаке BitBucket вы можете пройтиНастройки склада> Git LFSПросмотр и удаление файла GIT LFS:
Обратите внимание, что каждый файл GIT LFS проиндексирован его SHA-256 OID; путь к каждому файлу не цитируется через UI. Это потому, что во многих различных представлениях может быть много разных путей эталонных объектов, поэтому их нахождение будет очень медленным процессом.
Чтобы определить, какой файл данных GIT LFS на самом деле включен, у вас есть три варианта:
Найти путь или представление ссылок на объекты Git LFS
Это заклинание журнала GIT генерирует патч (-P), добавив или удаляя любую ветку (-алл), содержащую указанную строку (GIT LFS SHA-256 OID).
Этот патч покажет вам представление и путь объекта LFS, а также добавить его человека и время подачи. Вы можете просто проверить отправку, GIT LFS загрузит файл при необходимости и поместить его в свою работу.
Если вы подозреваете, что определенный объект GIT LFS расположен в текущей головке или определенной ветке, вы можете использовать Git Grep, чтобы найти путь к файлу:
Вы можете заменить голову или наконечники с любым Ref, Compare или Dreak, который содержит объекты GIT LFS.
Содержит / исключает файлы Git LFS
В некоторых случаях вы можете указывать на подмножество содержимого GIT LFS, доступное для конкретного представления. Например, при настройке CI строит, чтобы запустить тест подразделения, вам может понадобиться только исходный код, поэтому вам, возможно, придется исключить в тяжелом весе, который не требуется для создания кода.
Если вы используете и исключаете слияния, вы получите только совпадение с включенным рисунком, но не соответствует режиму исключения. Например, вы можете использовать следующие методы, чтобы получить все содержимое, отличное от файлов GIF в каталоге активов:
Эти настройки могут быть применены к каждому складу на системе дополнительными параметрами Global.
Блокировка файла GIT LFS
К сожалению, просто нет просто способа решения бинарных конфликтов слияния. Используйте файл GIT LFS для блокировки, вы можете заблокировать файл по расширению или имени файла и предотвратить перезаписание двоичных файлов во время объединения.
Чтобы использовать функцию блокировки файлов LFS, вам сначала необходимо сказать GIT, какие файлы типа блокируются. В приведенном ниже примере флаг-болтовой флаг прикреплен после команды GIT LFS Track, которая хранит как PSD файлов в LFS, и помечает их блокировкой.
Когда вы готовы вносить изменения в файл LFS, вы будете использовать команду блокировки, чтобы зарегистрировать файл в виде файла блокировки на сервере Git.
Как только блокировка файлов больше не требуется, вы можете использовать команду GIT LFS Unlock, чтобы удалить ее.
Как работать с Git LFS
Если вы хотите узнать больше о другой интересной компьютерной науке за фильтром Clean и Smudge, предварительно нажимным крюком и GIT LFS, обратите внимание на презентацию atlassian Git LFS в Linuxcon 2016.