GITLFS的优点是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (18)

GitHub有一个极限正在推送大文件。因此,如果想要将一个大文件推送到回购,必须使用GITLFS

我知道在gitrepo中添加二进制文件是个坏主意。但如果我用GitLab在我的服务器上,而且在回购中没有文件大小的限制,我也不在乎我的服务器上的回购大小是超大型的。在这种情况下,GITLFS的优点是什么?git clonegit checkout会更快吗?

提问于
用户回答回答于

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

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

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

扫码关注云+社区