Git - pack超出允许的最大大小 - 初始提交太大

时间:2017-06-19 16:37:31

标签: git github push

这个问题与Git - pack exceeds maximum allowed size密切相关,但还有其他问题。

我正在尝试将现有的repo迁移到GitHub。就像在原始问题中一样,我得到“包超过允许的最大大小”错误。不幸的是,推入几个提交的块并不能解决我的问题,因为单独的初始提交已经太大而无法通过(~6000个文件,~1GiB)。该项目存在了好几年才将其所有文件最终转移到git仓库中。

有没有办法以某种方式拆分第一次提交,以便将其推送到GitHub(不改变项目的整个历史记录)?我还能做什么?

1 个答案:

答案 0 :(得分:0)

Git 2.33(2021 年第 3 季度)现在对 git repack --max-pack-size=... 更加清晰。

请参阅 commit 6fb9195Jeff King (peff)(2021 年 6 月 8 日)。
(由 Junio C Hamano -- gitster --commit 18b49be 合并,2021 年 7 月 8 日)

<块引用>

doc:警告人们反对 --max-pack-size

签字人:Jeff King

<块引用>

此选项几乎从来都不是一个好主意,因为生成的存储库更大且速度更慢(请参阅文档中的新解释)。

我概述了潜在的问题。
我们可以更进一步,使选项更难找到(或者至少,使命令行选项描述更加简洁,“您可能不想要这个;有关详细信息,请参阅 pack.packsizeLimit”)。
但这似乎是一个很小的变化,可能会阻止人们认为它比实际更有用。

git config 现在包含在其 man page 中:

<块引用>

请注意,此选项很少有用,并且可能会导致总数较大 磁盘大小(因为 Git 不会在包之间存储增量),以及 运行时性能较差(多个包中的对象查找是 比单个包慢,以及可达性位图等优化 无法应付多个包装)。

如果您需要使用较小的包文件主动运行 Git(例如,因为您的 文件系统不支持大文件),这个选项可能会有帮助。

但是如果 您的目标是通过支持有限的媒体传输包文件 大小(例如,无法存储整个存储库的可移动媒体), 您最好创建一个单独的大包文件并进行拆分 它使用通用的多卷存档工具(例如,Unix split)。

允许的最小大小限制为 1 MiB。默认为无限制。 支持通用单位后缀“k”、“m”或“g”。

git pack-objects 现在包含在其 man page 中:

<块引用>

请注意,此选项可能会导致 更大更慢的存储库;见讨论 pack.packSizeLimit

git repack 现在包含在其 man page 中:

<块引用>

请注意,此选项可能会导致 更大更慢的存储库;见讨论 pack.packSizeLimit