我的项目已经六个月了,git非常非常慢。我们跟踪了大约30个文件,大小在5MB到50MB之间。这些都是二进制文件,我们将它们保存在git中。我相信这些文件让git变慢了。
有没有办法从存储库中删除所有大小大于5MB的文件?我知道我会丢失所有这些文件,这对我来说是可以接受的。
理想情况下,我想要一个命令,将列出所有的大文件(> 5MB)。我可以看到列表,然后我会说,好的,继续删除这些文件,让git更快。
我应该提到的是,git不仅在我的机器上很慢,而且在登台环境中部署应用程序现在需要大约3个小时。
因此,修复应该影响服务器,而不仅仅是存储库的用户。
发布于 2010-06-17 01:13:23
你会进行垃圾回收吗?
git gc
这在速度上有很大的不同,即使对于小的回购也是如此。
发布于 2010-06-17 05:19:20
以下是一个经过审查的修订,旨在减少负面影响和挑衅情绪:
对于不是逐行文本文件的文件,Git有一个众所周知的弱点。目前还没有解决方案,核心git团队也没有宣布解决这个问题的计划。如果你的项目很小,比如100MB左右,有一些变通的办法。存在git项目的分支来解决这个可伸缩性问题,但这些分支目前还不成熟。其他一些版本控制系统没有这个特定的问题。在决定是否选择git作为版本控制系统时,您应该将这个问题作为众多因素之一来考虑。
发布于 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很好地处理大文件。
https://stackoverflow.com/questions/3055506
复制相似问题