Git/LFS: Difference between revisions
< Git
Line 1: | Line 1: | ||
== Installation == | == Installation == | ||
=== Debian === | === Debian / Ubuntu === | ||
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash | curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash |
Revision as of 23:44, 7 April 2025
Installation
Debian / Ubuntu
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash sudo apt-get update sudo apt-get install git-lfs git lfs install
As of 2025.04.07:
$ git lfs --version git-lfs/3.6.1 (GitHub; linux amd64; go 1.23.3)
ref: https://github.com/git-lfs/git-lfs/wiki/Installation / https://github.com/git-lfs/git-lfs/blob/main/INSTALLING.md
Commands
Status
Get LFS Status in repo:
git lfs status
Enviornment
Get LFS Environemnt details and settings:
git lfs env
List Tracked Files
git lfs ls-files
Track Files
Track all zip files:
git lfs track "*.zip"
Track all ISO files:
git lfs track "*.iso"
This will create:
.gitattributes *.zip filter=lfs diff=lfs merge=lfs -text *.iso filter=lfs diff=lfs merge=lfs -text
Help
git-lfs/3.6.1 (GitHub; linux amd64; go 1.23.3) git lfs <command> [<args>] 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. Commands -------- Like Git, Git LFS commands are separated into high level ("porcelain") commands and low level ("plumbing") commands. High level porcelain commands ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ git lfs checkout: Populate working copy with real content from Git LFS files. git lfs completion: Generate shell scripts for command-line tab-completion of Git LFS commands. git lfs dedup: De-duplicate Git LFS files. git lfs env: Display the Git LFS environment. git lfs ext: Display Git LFS extension details. git lfs fetch: Download Git LFS files from a remote. git lfs fsck: Check Git LFS files for consistency. git lfs install: Install Git LFS configuration. git lfs lock: Set a file as "locked" on the Git LFS server. git lfs locks: List currently "locked" files from the Git LFS server. git lfs logs: Show errors from the Git LFS command. git lfs ls-files: Show information about Git LFS files in the index and working tree. git lfs migrate: Migrate history to or from Git LFS git lfs prune: Delete old Git LFS files from local storage git lfs pull: Fetch Git LFS changes from the remote & checkout any required working tree files. git lfs push: Push queued large files to the Git LFS endpoint. git lfs status: Show the status of Git LFS files in the working tree. git lfs track: View or add Git LFS paths to Git attributes. git lfs uninstall: Uninstall Git LFS by removing hooks and smudge/clean filter configuration. git lfs unlock: Remove "locked" setting for a file on the Git LFS server. git lfs untrack: Remove Git LFS paths from Git Attributes. git lfs update: Update Git hooks for the current Git repository. git lfs version: Report the version number. Low level plumbing commands ~~~~~~~~~~~~~~~~~~~~~~~~~~~ git lfs clean: Git clean filter that converts large files to pointers. git lfs filter-process: Git process filter that converts between large files and pointers. git lfs merge-driver: Merge text-based LFS files git lfs pointer: Build and compare pointers. git lfs post-checkout: Git post-checkout hook implementation. git lfs post-commit: Git post-commit hook implementation. git lfs post-merge: Git post-merge hook implementation. git lfs pre-push: Git pre-push hook implementation. git lfs smudge: Git smudge filter that converts pointer in blobs to the actual content. git lfs standalone-file: Git LFS standalone transfer adapter for file URLs (local paths). Examples -------- To get started with Git LFS, the following commands can be used. . Setup Git LFS on your system. You only have to do this once per user account: + git lfs install . Choose the type of files you want to track, for examples all ISO images, with git lfs track: + git lfs track "*.iso" . The above stores this information in gitattributes(5) files, so that file needs to be added to the repository: + git add .gitattributes . Commit, push and work with the files normally: + git add file.iso git commit -m "Add disk image" git push