我对吉特很陌生。今天,我通过git终端找到了一个分支,并收到了以下消息:
远程:计数对象: 5,完成。 远程:压缩对象: 100% (3/3),完成。 远程:总计3(增量2),重用0(增量0) 拆包对象: 100% (3/3),完成。
德尔塔是什么意思?
发布于 2019-09-18 12:26:58
好的,首先我们需要了解Git是如何在存储库中存储数据的。最重要的是,总是存储整个文件,换句话说,在概念级别上,Git在每个提交中存储项目树的“精确副本”。
好的,但是每次提交都不会通过新的树副本来增加存储库的大小。这就是魔法发生的地方。首先,让我们看到我们有两个文件当前在树中,并提交。
a.txt
b.txt当我们更改b.txt但保持原样时,我们不需要存储整个的a.txt新副本,只需指向旧的副本(因为它的哈希没有改变)。
但是让我们更进一步,我们也不需要存储整个b.txt文件,只是已经改变的部分。因此,让我们将b.txt分割成已知大小的块,并使b.txt节点只列出这些块。这样,我们可以只存储重复块一次,并节省空间。这些“块”中的每一个都叫做“三角洲”。
发布于 2019-09-18 11:27:26
发布于 2019-09-18 12:59:58
if (progress)
fprintf_ln(stderr,
_("Total %"PRIu32" (delta %"PRIu32"),"
" reused %"PRIu32" (delta %"PRIu32")"),
written, written_delta, reused, reused_delta);增量数据是从基对象重构对象的一系列指令。如果基对象是分层的,则必须首先将其转换为规范形式。每个指令都会向目标对象追加越来越多的数据,直到它完成为止。到目前为止,有两个受支持的指令:一个用于从源对象复制字节范围,另一个用于插入嵌入到指令本身中的新数据。
Git将对象保存在磁盘上的初始格式称为“松散”对象格式。但是,为了节省空间和提高效率,Git偶尔会将其中的几个对象打包到一个名为“packfile”的二进制文件中。如果您周围有太多的松散对象,如果手动运行Git gc命令,或者如果您推送到远程服务器,git就会这样做。要了解发生了什么,可以通过调用Git命令手动要求git打包对象:
$ git gc
Counting objects: 18, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (18/18), done.
Total 18 (delta 3), reused 0 (delta 0)https://stackoverflow.com/questions/57991448
复制相似问题