当我打开Git GUI时,我得到一个指向松散对象的弹出消息。我做了git gc,这删除了消息。
什么是松散对象,我如何防止这种情况再次发生?
当我打开Git GUI时,我得到一个指向松散对象的弹出消息。我做了git gc,这删除了消息。
什么是松散对象,我如何防止这种情况再次发生?
Git Book解释得很好: https://git-scm.com/book/en/v2/Git-Internals-Packfiles
松散对象是更简单的格式。 它只是被压缩的数据 存储在磁盘上的单个文件中。每一个 对象写入单独的文件。
具有SHA的对象(blob、树和提交)将存储在- 810cae53e0f622d6804f063c04a83dbc3a11b7ca
.git/objects/81/0cae53e0f622d6804f063c04a83dbc3a11b7ca
(将前两个字符分开以提高文件系统的性能,因为现在不是所有对象都存储在同一个目录中)
按上述方式存储的对象称为松散对象。
当你开始回购时,你大多有松散的对象。当数量增加时,效率就会降低,它们被存储在包文件中。这样的对象称为打包对象。
git gc
是你用来打包对象的(通常不需要的松散对象和几周前的对象也会被删除,使用——prune=<date>选项,你可以强制删除不再需要的松散对象。比如当你修改commit时。旧的提交对象不再需要。)