如何清理git仓库

Git将记录文件的每个不同版本。即使你只改变了一个文件的一行,git也会生成一个全新的blob对象来存储新的文件内容。Git gc packages或者Git会在每次git push时自动执行一次打包过程,将blob对象合并到一个包文件中,同时生成一个索引文件,其中包含包文件中每个blob对象的偏移量信息。在打包过程中使用了增量编码方案,只保存blob对象不同版本之间的差异,这样会减缓仓库的增长。但整体还是一个上升的过程。

第一种方法的核心是清理大文件或不再需要的文件(以下简称冗余文件)及其产生的提交记录。以下操作你一定要三思,真的会删除文件!

第二种方法更暴力,直接删除整个仓库的历史,达到瘦身git仓库的目的。