git

###

Git最初向磁盘中存储对象时所使用的格式被称为是“松散”对象格式。但是git会时不时地将多个这些对象打包📦成一个称为“包对象”的二进制文件,以节省空间和提高效率。

git gc

git 打包对象时,会查找命名及大小相近的文件,并只保存文件不同版本之间的差异内容。git时常会自动对仓库进行重新打包以节省空间。

两种协议

哑协议和智能协议

哑协议虽然很简单但是效率很低,并且不能从客户端向服务器端发送数据。智能协议是更常用的传送数据的方法,但是他需要一在服务端运行一个进程,而这也是git的智能之处。它可以读取本地数据,理解客户端有什么和需要什么,并为它生成合适的包文件。总共有两组进程用于传输数据,他们分别负责上传和下载数据。