gat
Versioned large-file storage for Git that needs no dedicated LFS server: point it at an object store such as S3 or a plain directory, then keep using ordinary Git commands.
gat is versioned, large-file storage for Git that works without a dedicated server, described as what git-lfs would be if it did not need a special server, and what dvc would be if it only did one thing. It is pointed at S3, Azure Blob, GCS, another object store, or a plain directory; large files or directories are added with gat add, and ordinary git commit, push, pull and clone continue to work unchanged.
Rather than clean/smudge filter magic, gat sync reconciles the working tree with the current lock file or shard directory, and Git hooks installed by gat init run that sync automatically after checkout, merge, pull, rebase and amend. Each new clone needs its own gat init, and gat pull downloads any tracked content missing from the local cache; a remote can be added for multiple storage backends, with one selected as the default for transfers.
It is written in Rust, distributed as prebuilt binaries or via Cargo, and requires Rust 1.91 or newer to build from source.