本文讲述了微软如何将其大型 Javascript 单体仓库 (monorepo) 的 Git 大小缩减 94% 的经验。最初,仓库大小因存储大量变更文件和未删除的二进制文件而膨胀。团队通过优化变更文件管理和定期清理解决了这个问题。然而,仓库大小仍然快速增长,经调查发现,问题出在 Git 的文件压缩机制上。该机制在处理文件名超过 16 个字符的文件时效率低下,导致重复提交大量相同内容。团队通过采用新的基于路径的打包算法和配置,最终将仓库大小从 178GB 缩减至 5GB。