The First Time I Heard of Git LFS

Every engineer eventually outgrows text. Git LFS is what stops that growth from killing Git itself.

The Moment of Discovery

I’ve used Git for years and I thought I knew it. Until someone mentioned Git LFS. Large File Storage. Three words that sound like something I should have cared about long ago but didn’t.

I’ve never used it. Never needed it, or so I told myself. My repos were clean, code-only, disciplined. I believed large files didn’t belong there. They belonged in some folder called “backup” that nobody ever opened again.


The Problem Git Was Never Built For

Git is beautiful for text. It tracks every comma, every brace. But feed it a 2-GB TIFF or an ISO and it collapses like a wet cardboard box. You try to push it and it refuses, as if saying this is not my job.

That’s where Git LFS comes in. It doesn’t fix Git. It cheats. It replaces the big file with a small text pointer, a reference that tells Git where to find the real file. The actual file sits in a separate storage area, managed quietly in the background. The repo stays light. The history remains intact. Nobody dies cloning your project.


Trying It Out (And The Fine Print)

I haven’t run it yet. But here’s what the ritual looks like, and it’s simple enough that I can already see why people swear by it:

sudo apt install git-lfs
git lfs install
git lfs track "*.tif"
git add .gitattributes
git commit -m "Track large files with Git LFS"
git push origin main

That’s it. Every .tif file now gets replaced by a pointer. The large data lives elsewhere, but your commits still show changes, versions, and authorship.

For the magic to work, every team member needs to have Git LFS installed. If not, they’ll only see pointer files instead of the real thing. Hosting providers may also charge extra for the additional storage and bandwidth. It’s worth noting too that Git LFS is not part of Git’s core. It’s an extension. Another moving piece that needs to be maintained.


The Verdict

Still, the trade-off feels fair. It’s a little more setup for a lot more sanity.

If you ever find yourself versioning large data, GIS rasters, router configs, firmware dumps, Git LFS may be the only way to stay sane. Imagine tracking the history of a critical router configuration and seeing exactly who changed what and when. Or managing a 500-MB satellite image without watching your repo bloat into absurdity.

It’s not glamorous. It’s plumbing. But all good engineering begins with plumbing.

Tags: