GIT-LFS(1)
π GIT-LFS(1) β the git-lfs glow-up guide π
okay so real talk: this is the git-lfs manual page, bestie. it's the whole thing. every command, every hook, every vibe. buckle up. β¨
πΈ NAME πΈ
git-lfs β work with large files in Git repositories. yes, the big ones. the chonky bois. π
π¦ SYNOPSIS π¦
git lfs <command> [<args>]
π DESCRIPTION π
so Git LFS is literally a whole system for managing and versioning large files alongside a Git repository. instead of stuffing the big files into the Git repo as blobs (which is, like, a nightmare), Git LFS keeps special "pointer files" in the repo β and the actual file contents live on a Git LFS server. and the best part? the contents of the large file get downloaded automatically when needed, like when you check out a Git branch that has the big file in it. no cap, it just happens. π«Ά
how does it work, you ask? Git LFS uses a "smudge" filter to look up the large file contents based on the pointer file, and a "clean" filter to make a brand-new version of the pointer file whenever 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 with a new large file version is about to be pushed to the corresponding Git server. it's giving infrastructure. it's giving β¨plumbingβ¨. π§
π COMMANDS π
like Git, the Git LFS commands split into high level ("porcelain") commands and low level ("plumbing") commands. main character energy vs. backstage crew, iykyk. π
π High level porcelain commands π
git-lfs-checkout(1)β populates your working copy with the real content from Git LFS files.git-lfs-completion(1)β generates shell scripts so you get command-line tab-completion for Git LFS commands. yes queen, autocomplete.git-lfs-dedup(1)β de-duplicates Git LFS files.git-lfs-env(1)β displays the Git LFS environment.git-lfs-ext(1)β displays Git LFS extension details.git-lfs-fetch(1)β downloads Git LFS files from a remote.git-lfs-fsck(1)β checks Git LFS files for consistency. a lil wellness check. π©Ίgit-lfs-install(1)β installs Git LFS configuration.git-lfs-lock(1)β sets a file as "locked" on the Git LFS server.git-lfs-locks(1)β lists the currently "locked" files from the Git LFS server.git-lfs-logs(1)β shows errors from the Git LFS command.git-lfs-ls-files(1)β shows info about Git LFS files in the index and working tree.git-lfs-migrate(1)β migrates history to or from Git LFS.git-lfs-prune(1)β deletes old Git LFS files from local storage.git-lfs-pull(1)β fetches Git LFS changes from the remote & checks out any required working tree files.git-lfs-push(1)β pushes queued large files to the Git LFS endpoint.git-lfs-status(1)β shows the status of Git LFS files in the working tree.git-lfs-track(1)β views or adds Git LFS paths to Git attributes.git-lfs-uninstall(1)β uninstalls Git LFS by removing hooks and the smudge/clean filter configuration.git-lfs-unlock(1)β removes the "locked" setting for a file on the Git LFS server.git-lfs-untrack(1)β removes Git LFS paths from Git Attributes.git-lfs-update(1)β updates Git hooks for the current Git repository.git-lfs-version(1)β reports the version number.
π©· Low level plumbing commands π©·
git-lfs-clean(1)β the Git clean filter that converts large files to pointers.git-lfs-filter-process(1)β the Git process filter that converts between large files and pointers.git-lfs-merge-driver(1)β merges text-based LFS files.git-lfs-pointer(1)β builds and compares pointers.git-lfs-post-checkout(1)β the Git post-checkout hook implementation.git-lfs-post-commit(1)β the Git post-commit hook implementation.git-lfs-post-merge(1)β the Git post-merge hook implementation.git-lfs-pre-push(1)β the Git pre-push hook implementation.git-lfs-smudge(1)β the Git smudge filter that converts the pointer in blobs to the actual content.git-lfs-standalone-file(1)β the Git LFS standalone transfer adapter for file URLs (local paths).
π EXAMPLES π
to get started with Git LFS, bestie, these are the commands you want. screaming, crying, throwing up (affectionate). ππ
- set up Git LFS on your system. you only have to do this once per user account, so like⦠not every single time, breathe:
git lfs install
- choose the type of files you wanna track β for example, all ISO images β with
git-lfs-track(1):
git lfs track "*.iso"
- the above stores this info 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. iconic behavior only:
git add file.iso
git commit -m "Add disk image"
git push
β little reminder: Git LFS is a system, not just a command β pointer files in the repo, real content on the server, smudge/clean filters doing the heavy lifting, and a pre-push hook shipping your big files off when you push. slay. π
and that's the whole page, bestie π«Ά β this was GIT-LFS(1) from the Git LFS docs, and if you're curious it's dated the same as always (that footer date up top and down below, you know the one). go forth and track your big files. no cap. πΈπβ¨
π¦ where this page comes from
- arch rolling: git-lfs 3.8.1-1 Β· MIT
- nixos 26.05: git-lfs 3.8.1
- nixpkgs unstable: git-lfs 3.8.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms