首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >git lfs的优势是什么?

git lfs的优势是什么?
EN

Stack Overflow用户
提问于 2016-02-23 18:48:01
回答 1查看 11.6K关注 0票数 61

Github有一个推送大文件的limit。因此,如果您想将一个大文件推送到您的存储库,则必须使用Git LFS

我知道在git repo中添加二进制文件不是一个好主意。但是如果我在我的服务器上使用gitlab,并且存储库中没有文件大小限制,那么我并不关心我的服务器上的存储库大小是否超大。在这种情况下,git lfs的优势是什么?git clonegit checkout会更快吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-23 21:21:28

与集中式系统相比,Git (和其他分布式系统)的一个特点是每个存储库包含项目的整个历史。假设你创建了一个100MB的文件,以一种不能很好压缩的方式修改了100次。您最终将拥有一个10 GB的存储库。这意味着每个克隆将下载10 GB的数据,占用每台进行克隆的机器上10 GB的磁盘空间。更令人沮丧的是:即使你git rm了这些大文件,你仍然需要下载这10 GB的数据。

将大文件放在像git-lfs这样的单独系统中,只允许您在存储库中存储指向文件的每个版本的指针,因此每个克隆只会为每个版本下载一小部分数据。结帐将只下载您正在使用的版本,即上面示例中的100MB。因此,您将使用服务器上的磁盘空间,但会节省客户端上的大量带宽和磁盘空间。

除此之外,git gc (内部为git repack)使用的算法并不总是能很好地处理大文件。Git的最新版本在这方面取得了进展,它应该工作得相当好,但使用包含大文件的大型存储库可能最终会给您带来麻烦(比如没有足够的RAM来重新打包存储库)。

票数 102
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35575400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档