2018.6月,git新发布了git2.18版本,其中有个特性是git gc --keep-largest-pack
我们知道git gc以后,objects下面的对象都会pack到pack目录的一个压缩文件里,这样在文件多的情况下传输的性能会提高。
然而,这个也会造成一些负面的影响,比如一些大文件压缩和解压也会造成性能损耗(建议git还是通过hook限制大文件,或者用Git-LFS解决)
git2.18版本在git gc增加新参数:git gc --keep-largest-pack ,经验证在pack目录中会将最大的文件单独打包
另外也提供config配置gc.bigPackThreshold,可以设置文件大小,即超过文件此大小的文件会独立pack,然而此方法会造成pack文件越积越多,看后续版本还是否有什么改进里