主要观点总结
本文介绍了微软的一个JavaScript单体仓库通过优化Git仓库管理和使用新的Git特性成功减少其大小94%的经历。文章详细阐述了仓库膨胀的原因,包括单一文件夹存放过多文件、Git算法缺陷以及特定文件名问题。同时提供了解决这些问题的措施,如向beachball提交请求、编写清理管道、使用新的git版本、重新打包仓库等。最后,文章给出了检测和解决Git仓库中大文件问题的方法。
关键观点总结
关键观点1: 仓库膨胀的原因
单一文件夹存放过多文件、Git算法缺陷以及特定文件名问题。
关键观点2: 解决仓库膨胀的措施
向beachball提交请求、编写清理管道、使用新的git版本、重新打包仓库等。
关键观点3: 检测和解决Git仓库中大文件问题的方法
使用git-sizer工具检测大文件,通过git log和git blame分析历史版本,移除大文件,清理历史,强制推送更改,并在.gitattributes和.gitignore文件中进行设置以防止再次发生问题。
文章预览
前言 微软的 Jonathan Creamer 团队通过优化 Git 仓库管理和使用新的 Git 特性,成功将其巨大的 JavaScript 单体仓库(monorepo)大小减少了 94%。今日前端早读课文章由 @飘飘翻译分享。 正文从这开始~~ 这不是为了吸引点击的。我们真的这样做了!我们在微软工作,使用一个非常庞大的 Javascript 单体代码库,我们俗称 "1JS"。它不仅在 GB 方面很大,而且在代码和贡献的绝对数量方面也相当庞大。我们最近达到了每月活跃用户数 1000 的里程碑,拥有约 2500 个包和 2000 万行代码!我最近克隆的代码库大小惊人,达到了 178GB。 由于种种原因,这个仓库实在太大了,我们在欧洲的人员甚至因为文件大小都无法克隆仓库。 问题是,这究竟是怎么发生的?! 原因一:单一文件夹存放过多文件 几年前我刚加入该仓库时,几个月后我注意到它在不断增长。我第一次克隆
………………………………