Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GitLab迁移文件大小更改,为什么?_Git - Fatal编程技术网

GitLab迁移文件大小更改,为什么?

GitLab迁移文件大小更改,为什么?,git,Git,我目前正在将许多项目从一台gitlab服务器移动到另一台。由于某些原因,当使用importgitrepobyurl时,它在添加新项目时所具有的功能,总文件大小与原始文件不同,虽然有一点差异,但仍然不同。我不能给图片,但我会给一个例子,一个项目,我将称为exampleProj是3.3MB,当我导入它,它变成了3.4MB。另一个例子是exampleProj2为2.1MB,导入的为1.2MB。在所有新导入中,它们都有相同数量的提交、分支、标记等。如果任何人有任何类型的输入,这将非常有用。没有任何内容被

我目前正在将许多项目从一台gitlab服务器移动到另一台。由于某些原因,当使用importgitrepobyurl时,它在添加新项目时所具有的功能,总文件大小与原始文件不同,虽然有一点差异,但仍然不同。我不能给图片,但我会给一个例子,一个项目,我将称为exampleProj是3.3MB,当我导入它,它变成了3.4MB。另一个例子是exampleProj2为2.1MB,导入的为1.2MB。在所有新导入中,它们都有相同数量的提交、分支、标记等。如果任何人有任何类型的输入,这将非常有用。

没有任何内容被破坏 好消息是,只要您的所有分支和标记都移动了,您就可以确信您的整个历史记录都完整地迁移了。(如果所有的位加起来不正确,git肯定会让你知道)

Git只是在做自己的工作 在后台,git保存内部数据库中的所有对象。此数据库的内容(以及一些元数据)决定了GitLab服务器上的repo大小。从服务器迁移到服务器将始终保持数据库中所有对象的完整性,但git内部优化不能保证磁盘上的大小相同:

有时回购协议会变得更大 在内部,git直接在文件系统中存储新对象(zlib压缩),但在文件系统中存储数千个(或者更常见的是,数十万或数百万个)对象作为单个文件是非常低效的

相反,git会定期“打包”对象。这种包装的两个主要目标是节省空间和提高性能

由于git存储的是整个文件,而不仅仅是一个diff文件,因此将相似的文件分组在一起可以使它们以更高的比率进行压缩。(这就是为什么git回购通常与svn回购具有大致相同或更小的占用空间,尽管svn只存储大多数提交的差异。)

它还智能地组织包文件,以便快速高效地访问它们。这会在后台周期性地发生(每几千个对象一次),只是为了保持速度

迁移回购时,将使用相同的过程重新组织所有包文件,这可能会导致回购大小的微小波动

有时回购协议会变小 Git也使得丢失数据变得非常困难。给定默认配置,git将保留所有不再可访问的对象大约90天,然后垃圾收集器将清除它们。这包括已删除的分支上的提交和对象,以及与这些对象有关的大量日志数据

克隆repo或将其迁移到另一台服务器不包括任何无法访问的对象。此外,git将在另一端进行重新打包,以前位于文件系统中的松散对象将被放入打包文件并一起压缩。

没有任何内容被破坏 好消息是,只要您的所有分支和标记都移动了,您就可以确信您的整个历史记录都完整地迁移了。(如果所有的位加起来不正确,git肯定会让你知道)

Git只是在做自己的工作 在后台,git保存内部数据库中的所有对象。此数据库的内容(以及一些元数据)决定了GitLab服务器上的repo大小。从服务器迁移到服务器将始终保持数据库中所有对象的完整性,但git内部优化不能保证磁盘上的大小相同:

有时回购协议会变得更大 在内部,git直接在文件系统中存储新对象(zlib压缩),但在文件系统中存储数千个(或者更常见的是,数十万或数百万个)对象作为单个文件是非常低效的

相反,git会定期“打包”对象。这种包装的两个主要目标是节省空间和提高性能

由于git存储的是整个文件,而不仅仅是一个diff文件,因此将相似的文件分组在一起可以使它们以更高的比率进行压缩。(这就是为什么git回购通常与svn回购具有大致相同或更小的占用空间,尽管svn只存储大多数提交的差异。)

它还智能地组织包文件,以便快速高效地访问它们。这会在后台周期性地发生(每几千个对象一次),只是为了保持速度

迁移回购时,将使用相同的过程重新组织所有包文件,这可能会导致回购大小的微小波动

有时回购协议会变小 Git也使得丢失数据变得非常困难。给定默认配置,git将保留所有不再可访问的对象大约90天,然后垃圾收集器将清除它们。这包括已删除的分支上的提交和对象,以及与这些对象有关的大量日志数据


克隆repo或将其迁移到另一台服务器不包括任何无法访问的对象。此外,git将在另一端进行重新打包,以前存放在文件系统中的松散对象将被放入打包文件并一起压缩。

好的,谢谢,知道没有错让我感觉更好。好的,谢谢,知道没有错让我感觉更好。