The Problem You added a 2 GB dataset to a repo. Now git clone takes 10 minutes, CI downloads the full history on every run, and GitHub is billing you per GB transferred. You switch to Git LFS - and now you need a server, a token, and a storage plan. You try DVC - and now you need Python, a pipeline config, and lock files that conflict on every PR. None of this is the actual problem. The actual problem is: large files don't belong in Git objects. Everything else is overhead. Meet git-sfs SFS stands for Symbolic File Storage . The name is deliberate - it's Git LFS with the L swapped for S . Git LFS replaces large files with opaque pointer files and routes bytes through a proprietary server protocol. git-sfs replaces large files with plain symlinks that Git already understands natively, and routes bytes through rclone to any remote you already have. No new protocol. No server. No pointer file format to decode. Just symlinks. How It Works The model is three sentences: Git tracks symlinks.…