Git Large File Storage is an extension that keeps large binaries out of the Git repository itself. Files matching patterns you configure are uploaded to a separate LFS server, and a small text pointer is committed in their place. Clone the repository and LFS fetches the real content for the files you actually need.
It works, up to a point, and for a project with a few hundred large assets it is a reasonable answer. Three things tend to break first.
Pointer-file accidents. If any client is not LFS-aware, or someone clones without LFS installed, the pointers get committed as if they were the assets. The repository looks fine and the content is gone. This is the classic silent Git LFS data loss.
Bandwidth billing. Hosts meter LFS bandwidth and sell it in packs. A team pulling nightly multi-gigabyte builds burns through allocations quickly, and the bill moves without any change to how you work.
File count. This is the one that catches Unreal Engine 5 teams specifically. One File Per Actor turns a populated World Partition level into thousands of small binary files, each of which needs its own pointer. The Git index grows accordingly, and operations that walk it slow down noticeably. LFS was designed for a few hundred large files, not tens of thousands of small ones.