简体中文 ▾ 主题 ▾ 最新版本 ▾ git-multi-pack-index 最后更新于 2.52.0

名称

git-multi-pack-index - 写入和验证 multi-pack-indexes

概要

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

描述

写入或验证 multi-pack-index (MIDX) 文件。

选项

--object-dir=<dir>

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

<dir> 必须是当前仓库的备用仓库。

--progress
--no-progress

明确开启或关闭进度显示。如果两者都没有指定,则当标准错误连接到终端时显示进度。支持的子命令有 writeverifyexpirerepack

可用的子命令如下

write

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

--preferred-pack=<pack>

指定后,当存在其对象的其他副本时,优先选择此 pack。对于在首选 pack 中找不到的对象,将始终优先选择修改时间 (mtime) 最新的副本。如果未指定,则默认使用修改时间 (mtime) 最早的 pack。首选 pack 必须至少包含一个对象。

--[no-]bitmap

控制是否写入 multi-pack bitmap。

--stdin-packs

写入一个 multi-pack index,仅包含通过 stdin 提供的以行为分隔的 pack index 基名集合。

--refs-snapshot=<path>

当使用 --bitmap 时,可以选择性地指定一个文件,该文件包含在 repacking 之前拍摄的“refs 快照”。

Reference snapshot 由以行为分隔的 OID 组成,对应于 ref 的尖端,通常由 git repack 在生成新 pack 之前获取。一行可以选择性地以 + 字符开头,以指示与该 OID 对应的 ref 是“首选”的(请参见 git-config[1]pack.preferBitmapTips)。

<path> 给出的文件必须是可读的,并且可以包含重复项。(如果给定的 OID 被给出多次,则只有当至少一个实例以特殊的 + 标记开始时,它才被标记为首选)。

--incremental

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

verify

验证 MIDX 文件的内容。

expire

删除由 MIDX 文件跟踪但没有任何对象被 MIDX 引用的 pack 文件(.keep pack 和 cruft pack 除外)。之后重写 MIDX 文件以移除所有对这些 pack 文件的引用。

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

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

如果 repack.packKeptObjectsfalse,则不会选择具有关联 .keep 文件的 pack 文件作为 repacking 的批次。

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

示例

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

    $ git multi-pack-index write
  • 为当前 .git 目录中的 pack 文件写入 MIDX 文件,并带有相应的 bitmap。

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

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

    $ git multi-pack-index verify

另请参阅

有关 multi-pack-index 功能及其文件格式的更多信息,请参阅 Multi-Pack-Index 设计文档gitformat-pack[5]

GIT

Git[1] 套件的一部分