Git
英文 ▾ 主题 ▾ 最新版本 ▾ git-multi-pack-index 最后更新于 2.47.0

名称

git-multi-pack-index - 编写和验证多包索引

概要

git multi-pack-index [--object-dir=<dir>] [--[no-]bitmap] <sub-command>

描述

编写或验证多包索引 (MIDX) 文件。

选项

--object-dir=<dir>

使用给定目录作为 Git 对象的位置。我们检查 <dir>/packs/multi-pack-index 以获取当前 MIDX 文件,并检查 <dir>/packs 以获取要索引的包文件。

<dir> 必须是当前存储库的备用目录。

--[no-]progress

明确打开/关闭进度。如果没有指定,则如果标准错误连接到终端,则会显示进度。受子命令 writeverifyexpirerepack 支持。

以下子命令可用

write

写入新的 MIDX 文件。以下选项可用于 write 子命令

--preferred-pack=<pack>

可选地指定多个包包含相同对象时使用的决胜包。<pack> 必须包含至少一个对象。如果没有给出,则选择 mtime 最低的包作为决胜包。

--[no-]bitmap

控制是否写入多包位图。

--stdin-packs

写入一个多包索引,其中仅包含通过标准输入提供的以行为分隔的包索引基本名称集。

--refs-snapshot=<path>

使用 --bitmap 时,可选地指定一个包含在重新打包之前生成的“refs 快照”的文件。

引用快照由对应于引用提示的以行为分隔的 OID 组成,通常由 git repack 在生成新包之前生成。一行可以可选地以 + 字符开头,以指示对应于该 OID 的引用是“首选”(参见 git-config[1]pack.preferBitmapTips)。

<path> 中给出的文件应可读,并且可以包含重复项。(如果给定 OID 多次出现,则如果它至少有一个实例以特殊 + 标记开头,则它被标记为首选)。

--incremental

写入一个增量 MIDX 文件,其中仅包含现有 MIDX 层中不存在的对象和包。在必要时将非增量 MIDX 迁移到增量 MIDX。与 --bitmap 不兼容。

verify

验证 MIDX 文件的内容。

expire

删除 MIDX 文件跟踪但 MIDX 未引用任何对象的包文件(除了 .keep 包和残余包)。之后重写 MIDX 文件以删除对这些包文件的引用。

注意
此模式与增量 MIDX 文件不兼容。
repack

创建一个新的包文件,其中包含由多包索引引用的较小包文件中的对象。如果 --batch-size=<size> 参数给出的大小为零,则创建一个包含多包索引引用的所有对象的包。对于非零批次大小,通过从最旧到最新的顺序检查包来选择包文件,通过计算由多包索引引用的包中对象的“预期大小”来计算“预期大小”,然后除以包中的对象总数并乘以包大小。我们选择预期大小低于批次大小的包,直到包集的预期大小总数至少达到批次大小,或者所有包文件都被考虑。如果只选择了一个包文件,则什么也不做。如果创建了新的包文件,则重写多包索引以引用新的包文件。稍后运行 git multi-pack-index expire 将删除构成此批次的包文件。

如果 repack.packKeptObjectsfalse,则任何与 .keep 文件关联的包文件将不会被选中用于重新打包的批次。

注意
此模式与增量 MIDX 文件不兼容。

示例

  • 为当前 .git 目录中的包文件写入 MIDX 文件。

    $ git multi-pack-index write
  • 为当前 .git 目录中的包文件及其相应的位图写入 MIDX 文件。

    $ git multi-pack-index write --preferred-pack=<pack> --bitmap
  • 为备用对象存储中的包文件写入 MIDX 文件。

    $ git multi-pack-index --object-dir <alt> write
  • 验证当前 .git 目录中包文件的 MIDX 文件。

    $ git multi-pack-index verify

参见

有关多包索引功能及其文件格式的更多信息,请参见 多包索引设计文档gitformat-pack[5]

GIT

git[1] 套件的一部分

scroll-to-top