我有一个有4年历史的git存储库,它开始变得非常庞大:大约30GO,60.000个文件。每天要完成一到两个提交。我希望将超过1年的所有提交都压缩到第一次提交中。但由于技术问题,我不能只是重新创建repo,我必须使用它。可用的git版本是1.7.2.5 (无法更新)。磁盘空间限制为100go (因此只有70go可用),设备内存为4go (交换19mo,是MO...),也不能在另一台计算机上移动存储库。
我在此页面Squash the first two commits in Git?上尝试了所选的解决方案,2009年2月版本。它会一直工作到“git rebase --onto”。git-rebase导致了一个OutOfMemory错误,我不确定原因,我想可能是因为它试图在一个镜头中播放每一个提交。我正在考虑使用git-cherry-pick,每次提交一个,然后在它的顶部移动master。
这是个好主意吗?或者谁有更好的主意?谢谢!:)
发布于 2017-11-29 00:56:25
这不太可能是提交次数导致的问题,git在压缩文本文件方面非常有效。
减小git存储库大小的最好方法是使用诸如BFG repo cleaner之类的工具从历史记录中删除大型二进制文件。
编译后的依赖项,如Nuget包和Jars,应该主要存储在artefact库中(而不是git),应用程序构建过程将在构建时获取依赖项。
您还可以使用Git LFS以更透明的方式存储二进制文件。
https://stackoverflow.com/questions/47478112
复制相似问题