我有一个反复出现的问题,我的git repo(我认为?)将决定它需要垃圾收集.这个过程需要半个多小时,然后在每次拉/推操作时触发.
手动运行Git GC需要半小时,但似乎无法解决问题.我找到的唯一解决方案是删除我的仓库并克隆新鲜,由于各种原因这是次优的.
我的git GC操作可能很慢,因为我已经设置了git一些内存限制来阻止它在git GC操作上崩溃,就像它在达到4gb windows内存限制然后被淘汰时所做的那样.
任何帮助,将不胜感激.它是一个大型仓库,repo确实包含大量二进制数据,以及大量非常大(> 500k)的文本文件.
所以,
1.我如何限制Git决定垃圾收集的金额.
2.如何加快GC操作?
3.我可以做些什么来解决或最小化所涉及的更大问题(也就是说,为什么它首先要进行垃圾收集)?
最佳答案 唯一真正的方法是减少存储库的大小.您可以使用git config –global gc.auto 0禁用自动垃圾回收,但这会增加推送和拉取时的网络流量,如果它们仍然可以工作,并且会增加用于git的本地磁盘空间.如果没有git gc,您的本地仓库将包含您更改的每个文件的每个修订版的完整副本.但是,如果你在离开的时候每天晚上做一些像git gc这样的事情,这可能是可行的.
我建议看看像你这样的情况设计的像git annex这样的东西.它基本上存储指向repo中大文件的指针而不是文件本身.