这个问题与Git - pack exceeds maximum allowed size密切相关,但还有其他问题。
我正在尝试将现有的repo迁移到GitHub。就像在原始问题中一样,我得到“包超过允许的最大大小”错误。不幸的是,推入几个提交的块并不能解决我的问题,因为单独的初始提交已经太大而无法通过(~6000个文件,~1GiB)。该项目存在了好几年才将其所有文件最终转移到git仓库中。
有没有办法以某种方式拆分第一次提交,以便将其推送到GitHub(不改变项目的整个历史记录)?我还能做什么?
答案 0 :(得分:0)
Git 2.33(2021 年第 3 季度)现在对 git repack --max-pack-size=...
更加清晰。
请参阅 commit 6fb9195 的 Jeff 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
。