首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >git在跟踪大型二进制文件时非常非常慢

git在跟踪大型二进制文件时非常非常慢
EN

Stack Overflow用户
提问于 2010-06-17 01:01:43
回答 8查看 71K关注 0票数 86

我的项目已经六个月了,git非常非常慢。我们跟踪了大约30个文件,大小在5MB到50MB之间。这些都是二进制文件,我们将它们保存在git中。我相信这些文件让git变慢了。

有没有办法从存储库中删除所有大小大于5MB的文件?我知道我会丢失所有这些文件,这对我来说是可以接受的。

理想情况下,我想要一个命令,将列出所有的大文件(> 5MB)。我可以看到列表,然后我会说,好的,继续删除这些文件,让git更快。

我应该提到的是,git不仅在我的机器上很慢,而且在登台环境中部署应用程序现在需要大约3个小时。

因此,修复应该影响服务器,而不仅仅是存储库的用户。

EN

回答 8

Stack Overflow用户

发布于 2010-06-17 01:13:23

你会进行垃圾回收吗?

git gc

这在速度上有很大的不同,即使对于小的回购也是如此。

票数 126
EN

Stack Overflow用户

发布于 2010-06-17 05:19:20

以下是一个经过审查的修订,旨在减少负面影响和挑衅情绪:

对于不是逐行文本文件的文件,Git有一个众所周知的弱点。目前还没有解决方案,核心git团队也没有宣布解决这个问题的计划。如果你的项目很小,比如100MB左右,有一些变通的办法。存在git项目的分支来解决这个可伸缩性问题,但这些分支目前还不成熟。其他一些版本控制系统没有这个特定的问题。在决定是否选择git作为版本控制系统时,您应该将这个问题作为众多因素之一来考虑。

票数 16
EN

Stack Overflow用户

发布于 2012-10-07 02:30:27

关于二进制文件和git处理它们的方式并没有什么特别的东西。当您将文件添加到git存储库时,会添加一个头文件,并使用zlib压缩该文件,并根据SHA1散列对该文件进行重命名。无论文件类型如何,这都是完全相同的。zlib压缩不会给二进制文件带来任何问题。

但在某些时候(推送,gc) Git开始考虑增量压缩内容的可能性。如果git找到相似的文件(文件名等),它会将它们放入RAM中,并开始将它们压缩在一起。如果你有100个文件,每个文件大小都是50Mb,那么它会同时尝试在内存中放入5 5GB。为此,您必须添加更多内容才能使其正常工作。您的计算机可能没有此容量的RAM,它将开始交换。这个过程需要时间。

您可以限制增量压缩的深度,以便该进程不会使用太多内存,但结果是压缩效率较低。(core.bigFileThreshold、增量属性、pack.window、pack.depth、pack.windowMemory等)

所以有很多想法可以让git很好地处理大文件。

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

https://stackoverflow.com/questions/3055506

复制
相关文章

相似问题

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