gc意味着垃圾回收(garbage collect), 使用git gc指令,可以将松散的文件压缩。具体流程如文档所说:“Git 会不定时地自动运行称为 “auto gc” 的命令。大部分情况下该命令什么都不处理。不过要是存在太多松散对象 (loose object, 不在 packfile 中的对象) 或 packfile,Git 会进行调用 git gc 命令。gc 指垃圾收集 (garbage collect),此命令会做很多工作:收集所有松散对象并将它们存入 packfile,合并这些 packfile 进一个大的 packfile,然后将不被任何 commit 引用并且已存在一段时间 (数月) 的对象删除。”
下面是关于他的文档: https://git-scm.com/book/zh/v1/Git-内部原理-维护及数据恢复
对本地git库进行更彻底清理和优化,这个指令花费的时间也会更长。
这是一个设置的指令,并不会进行gc操作。如果有 7,000 个左右的松散对象或是 50 个以上的 packfile,Git 才会真正调用 gc 命令,即是这里设置了阈值,当然也可以通过修改配置中的 gc.auto 和 gc.autopacklimit 来调整这两个阈值。
参考:
[https://hiberabyss.github.io/2018/03/28/git-internal/](