建议使用BFG清理仓库
NaOHCC opened this issue · comments
需求描述
当我克隆这个仓库想进行二次开发时,竟然发现这个仓库有500MB+,我的内心是崩溃的,太慢了T^T。经过一番研究,我发现以前的字体包还在git的历史记录里:
Filename Git id
----------------------------------------------------------------
Alibaba PuHuiTi 2.0.zip | 0bcb37b5 (39.5 MB)
FZFS_Document.TTF.zip | 27821803 (8.6 MB)
FZHT_Document.TTF.zip | acd1ce7e (5.9 MB)
FZKT_Document.TTF.zip | 96ebc3b4 (9.6 MB)
Kaiti.ttc.zip | c1a7e1bc (60.5 MB)
PingFang.ttc | 1e264aad (73.6 MB)
PingFang.ttc.zip | 5cc8c984 (59.2 MB)
STFANGSO.ttf.zip | 1bf97296 (10.2 MB)
STFangsong-Bold.ttf.zip | d7a83038 (11.2 MB)
STHeitiBold.ttf.zip | 4d70d77a (6.8 MB)
STSongti-SC-Bold.ttf | d62cb845 (46.1 MB)
STSongti-SC-Regular.ttf | b270c7e2 (34.1 MB)
Songti.ttc.zip | 91186be5 (41.4 MB)
SongtiSC-Black.ttf | a6294d03 (7.4 MB)
SongtiSC-Light.ttf | 040e8a13 (33.0 MB)
宋体-简.zip | ce32fe3f (65.6 MB), 4d57de00 (66.2 MB)
现在应该不需要使用本地字体包进行开发了,我尝试在git的历史记录中删除这些文件,但是非常困难。
好在我发现了BFG这个工具,能够非常方便的删除这些文件。https://rtyley.github.io/bfg-repo-cleaner/
清理过后,这个仓库减小到10MB,真是非常amazing啊!
非常非常感谢你的回复和建议,对我们很有帮助!
我们其实有思考过这个问题,也讨论过解决方案。而我们至今没有采取行动,主要是出于以下几个原因:
- GitHub 上的很多功能可能与 commit hash 关联,比如 CI 和 release 。一旦对 git 树进行修改,我们无法预期 release 历史是否能被复合预期地保留。我们也正打算进行一些实验,来确认对 git 树的修改所产生的行为。
- 更主要的原因是,有一些开发者在基于我们的项目维护他们的分支。一旦我们对 git 历史进行更改,他们从上游同步更改就会变得比较困难。这对下游开发者是不利的。
不过,既然这个项目已经发展到今天这个程度,我觉得还是很有必要彻底解决你提到的这个问题。因此,我们在这段时间会考虑开展相关的工作。
再次感谢你的建议!
真的是非常 amazing 啊!
我之前没有良好的开发习惯,对不起大家(鞠躬)呜呜 这个问题确实拖了好久了。
正在处理这件事了,还是先把这个 issue 打开,等到处理完以后再 close
好的,我了解了!
我还没考虑过这可能会对别的仓库有影响,学习了 !
已完成清理,再次感谢。