我有大git存储库. dotgit文件夹的大小非常大.(350gb – 我们的3D建模者的ty :))我在硬盘上有240gb的可用空间.当我试图运行此命令时:
git gc --prune=now --aggressive
我收到一些错误:
can't allocate memory...lalala
我该怎么办?我应该去git服务器并在那里运行这个命令吗?
最佳答案 随着时间的推移,存储库可能已经提交了大量大文件.砍掉你的历史并没有多大帮助,随着更多大文件被添加和处理,问题就会回来,你将失去你工作的历史.
不使用直接提交大文件,而是使用Git Large File Storage (git-lfs).这将允许您提交大型文件并保留历史记录而不会使存储库大小膨胀.
那些旧的提交怎么样?不要只是在任意日期切断历史记录,而是使用BFG Repo Cleaner清除历史记录中的大型文件.这样您就可以保留历史记录,同时只删除最大的违规文件.
更好的是你可以将两者结合起来! BFG可以将您现有的大文件提交转换为最近添加的–convert-to-git-lfs的小型git-lfs提交. It’s all documented in this blog post.这是两全其美:你保留所有历史记录,所有文件,并获得一个苗条的存储库.完成后,将git-lfs用于所有未来的大文件.