专栏名称: 前端早读课
我们关注前端,产品体验设计,更关注前端同行的成长。 每天清晨五点早读,四万+同行相伴成长。
今天看啥  ›  专栏  ›  前端早读课

【第3410期】如何将JavaScript单体代码库的Git大小缩小到原来的94%的?

前端早读课  · 公众号  · 前端  · 2024-11-06 08:00

主要观点总结

本文介绍了微软的一个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。 由于种种原因,这个仓库实在太大了,我们在欧洲的人员甚至因为文件大小都无法克隆仓库。 问题是,这究竟是怎么发生的?! 原因一:单一文件夹存放过多文件 几年前我刚加入该仓库时,几个月后我注意到它在不断增长。我第一次克隆 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览