Git gc的作用以及如何删除仓库中错误的大文件

之前对gc一直不了解,这玩意是个bug吧

为什么git pull的时候会出现一个git gc的命令,还提示我可以自己运行

回忆下,第一次遇到这个问题的时候就是这个状态,然后就一直没理会

最近测试服务器部署代码的时候,经常会遇到这个命令在执行

于是搜搜了下,才发现这个命令是对大文件进行压缩的

同时如果出现这个命令的执行或者提示你让你去执行这个gc的命令

说明你的项目真的很大了

或者说明你的项目存在非常大的文件

原理就是压缩了下,创建了一个包文件和一个索引文件,方便后面更快的对文件的更改进行对比(diff)操作,不然文件很大的话读取再对比其实是很慢的,这样可以理解的通透了

另外需要对git的原理有更多的理解

就是我们每次对一个文件进行更改的时候git都会生成一个全新的对象来存储新的文件内容。

推荐一篇文章,点这里,具体介绍了如何删除大文件,同时对git gc有更详细的了解