Git LFS: Difference between revisions
Line 11: | Line 11: | ||
Git LFS is a system for managing and versioning large files in association with a Git repository. Instead of storing the large files within the Git repository as blobs, Git LFS stores special "pointer files" in the repository, while storing the actual file contents on a Git LFS server. The contents of the large file are downloaded automatically when needed, for example when a Git branch containing the large file is checked out. Git LFS works by using a "smudge" filter to look up the large file contents based on the pointer file, and a "clean" filter to create a new version of the pointer file when the large file's contents change. It also uses a pre-push hook to upload the large file contents to the Git LFS server whenever a commit containing a new large file version is about to be pushed to the corresponding Git server. | Git LFS is a system for managing and versioning large files in association with a Git repository. Instead of storing the large files within the Git repository as blobs, Git LFS stores special "pointer files" in the repository, while storing the actual file contents on a Git LFS server. The contents of the large file are downloaded automatically when needed, for example when a Git branch containing the large file is checked out. Git LFS works by using a "smudge" filter to look up the large file contents based on the pointer file, and a "clean" filter to create a new version of the pointer file when the large file's contents change. It also uses a pre-push hook to upload the large file contents to the Git LFS server whenever a commit containing a new large file version is about to be pushed to the corresponding Git server. | ||
LFS support must be explicitly enabled per-repository with | LFS support must be explicitly enabled per-repository with: | ||
git lfs install | git lfs install | ||
If another collaborator on your repository does not have Git LFS installed, they won't have access to the original large file. If they attempt to clone the repository, they will only fetch the pointer files, and won't have access to any of the actual data. | |||
=Operations= | =Operations= |
Revision as of 00:48, 19 July 2019
External
Internal
Overview
Git LFS is a system for managing and versioning large files in association with a Git repository. Instead of storing the large files within the Git repository as blobs, Git LFS stores special "pointer files" in the repository, while storing the actual file contents on a Git LFS server. The contents of the large file are downloaded automatically when needed, for example when a Git branch containing the large file is checked out. Git LFS works by using a "smudge" filter to look up the large file contents based on the pointer file, and a "clean" filter to create a new version of the pointer file when the large file's contents change. It also uses a pre-push hook to upload the large file contents to the Git LFS server whenever a commit containing a new large file version is about to be pushed to the corresponding Git server.
LFS support must be explicitly enabled per-repository with:
git lfs install
If another collaborator on your repository does not have Git LFS installed, they won't have access to the original large file. If they attempt to clone the repository, they will only fetch the pointer files, and won't have access to any of the actual data.
Operations
Install
git lfs install
Sets up git LFS per repository by installing the LFS configuration..