I understand that git lfs replaces the lfs tracked files with pointer files in my repository.
What I don't understand is what I gain from that happening.
Is it just that I never have to download the binary files associated with commits that I never checkout?
Or are there other advantages?
Git LFS (Large File Storage) is a Git extension developed by Atlassian, GitHub, and a few other open source contributors, that reduces the impact of large files in your repository by downloading the relevant versions of them lazily.
You can configure Git LFS to only fetch objects to satisfy references in certain paths of the repo, and/or to exclude certain paths of the repo, to reduce the time you spend downloading things you do not use. In your Git configuration or in a . lfsconfig file, you may set either or both of lfs.
Unfortunately, unless you rewrite history and purge those files, the repo size will not shrink. The reason being that the files are still in commit history, even if they are deleted from HEAD.
It boils down to the reduction of clone time, storage space - for those who clone the repository - and network bandwidth use for both the client and repository server.
It may be just that for the average user and some even see it as big disadvantage since lfs introduces centralization, at least of parts of the repository.
But especially for companies and git services that have many users and/or many versions of big binary files, this can be a great saving of resources like storage, bandwidth, cpu time and so on. These are normally very centralized anyway and could f.e. throttle usage of the LFS server while maintaining the "normal service".
The Roadmap includes a bit more, like metrics, resumable downloads which would be new and maybe advantageous to the normal git with big files. The rest is more or less an improvement for lfs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With