Mat*_*Moy 62
与集中式系统相比,Git(和其他分布式系统)的一个特点是每个存储库都包含项目的整个历史记录.假设您创建了一个100 Mb的文件,以不能很好地压缩的方式对其进行100次修改.你最终会得到一个10 Gb的存储库.这意味着每个克隆将下载10 Gb的数据,在您正在进行克隆的每台计算机上占用10 Gb的磁盘空间.更令人沮丧的是:即使你git rm
是大文件,你仍然需要下载这10 Gb的数据.
将大文件放在单独的系统(如git-lfs)中,只允许存储指向存储库中文件的每个版本的指针,因此每个克隆只会为每个修订下载一小段数据.结帐将仅下载您正在使用的版本,即上例中的100 Mb.因此,您将在服务器上使用磁盘空间,但在客户端上节省了大量带宽和磁盘空间.
除此之外,git gc
(内部git repack
)使用的算法并不总是适用于大文件.Git的最新版本在这个领域取得了进展,并且它应该运行得相当好,但是使用包含大文件的大型存储库可能最终会让您遇到麻烦(例如没有足够的RAM来重新打包您的存储库).
归档时间: |
|
查看次数: |
5193 次 |
最近记录: |