Git GUI提到的“松散对象”是什么?

当我打开Git GUI时 ,我得到一个popup消息,指向loose objects 。 我做了git gc并删除了消息。

什么是loose objects ,我怎么能防止这种情况再次发生?

一个对象(blob,树和提交)与SHA说 – 810cae53e0f622d6804f063c04a83dbc3a11b7ca将存储在

 .git/objects/81/0cae53e0f622d6804f063c04a83dbc3a11b7ca 

(为了提高文件系统的性能,将前两个字符分开,因为不是所有的对象都存储在同一个目录中)

如上所述存储的对象被称为松散对象。

当你开始回购时,你大多有松散的物品。 随着数量的增加,效率变低,并存储在一个包文件中。 这样的对象被称为打包对象。

  git gc 

是你运行包装对象的东西(通常松散的对象是不需要的,几个星期的旧的也被删除,用--prune=<date>选项你可以强制删除不再需要的松散对象,比如当你修改一个提交旧的提交对象不再需要。)

Git Book解释得非常好: https : //git-scm.com/book/en/v2/Git-Internals-Packfiles

松散的对象是更简单的格式。 它只是将压缩数据存储在磁盘上的单个文件中。 每个对象写入一个单独的文件。