Git LFS (Large File Storage) is an extension for handling large binary files (videos, datasets, design assets, large binaries) efficiently in Git. Git is designed for text/source code and handles large binaries poorly, so LFS stores them separately while keeping lightweight references in the repository.
The problem: Git and large binaries
Git stores every version of every file in its history (the full content):
→ LARGE BINARY files (videos, datasets, PSDs, big binaries) bloat the repo ENORMOUSLY:
- every change stores another full copy (binaries don't diff well)
- the repo and EVERY clone become huge and slow (clone/fetch download all history)
- history can't be shrunk easily (the large blobs are permanent)
→ Git is great for source code (text, diffable), POOR for large binaries.
