首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在吉特三角洲是什么意思?

在吉特三角洲是什么意思?
EN

Stack Overflow用户
提问于 2019-09-18 11:12:59
回答 3查看 4.7K关注 0票数 9

我对吉特很陌生。今天,我通过git终端找到了一个分支,并收到了以下消息:

远程:计数对象: 5,完成。 远程:压缩对象: 100% (3/3),完成。 远程:总计3(增量2),重用0(增量0) 拆包对象: 100% (3/3),完成。

德尔塔是什么意思?

EN

回答 3

Stack Overflow用户

发布于 2019-09-18 12:26:58

好的,首先我们需要了解Git是如何在存储库中存储数据的。最重要的是,总是存储整个文件,换句话说,在概念级别上,Git在每个提交中存储项目树的“精确副本”。

好的,但是每次提交都不会通过新的树副本来增加存储库的大小。这就是魔法发生的地方。首先,让我们看到我们有两个文件当前在树中,并提交。

代码语言:javascript
运行
复制
a.txt
b.txt

当我们更改b.txt但保持原样时,我们不需要存储整个a.txt新副本,只需指向旧的副本(因为它的哈希没有改变)。

但是让我们更进一步,我们也不需要存储整个b.txt文件,只是已经改变的部分。因此,让我们将b.txt分割成已知大小的块,并使b.txt节点只列出这些块。这样,我们可以只存储重复块一次,并节省空间。这些“块”中的每一个都叫做“三角洲”。

票数 13
EN

Stack Overflow用户

发布于 2019-09-18 11:27:26

Git使用Delta编码,它指示以顺序数据之间的差异(增量)形式存储或传输数据的方式,而不是完整的文件。

包中的对象存储为增量,即要对其他对象进行的一系列更改。

为了更好地理解,您可以阅读更多的这里

票数 6
EN

Stack Overflow用户

发布于 2019-09-18 12:59:58

相关源代码

代码语言:javascript
运行
复制
if (progress)
    fprintf_ln(stderr,
           _("Total %"PRIu32" (delta %"PRIu32"),"
             " reused %"PRIu32" (delta %"PRIu32")"),
           written, written_delta, reused, reused_delta);

医生:包格式

增量数据是从基对象重构对象的一系列指令。如果基对象是分层的,则必须首先将其转换为规范形式。每个指令都会向目标对象追加越来越多的数据,直到它完成为止。到目前为止,有两个受支持的指令:一个用于从源对象复制字节范围,另一个用于插入嵌入到指令本身中的新数据。

Git内部部件- Packfiles

Git将对象保存在磁盘上的初始格式称为“松散”对象格式。但是,为了节省空间和提高效率,Git偶尔会将其中的几个对象打包到一个名为“packfile”的二进制文件中。如果您周围有太多的松散对象,如果手动运行Git gc命令,或者如果您推送到远程服务器,git就会这样做。要了解发生了什么,可以通过调用Git命令手动要求git打包对象:

代码语言:javascript
运行
复制
$ 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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57991448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档