简体中文 ▾ 主题 ▾ 最新版本 ▾ git-multi-pack-index 上次更新于 2.50.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

明确开启/关闭进度显示。如果未指定,当标准错误连接到终端时会显示进度。子命令 writeverifyexpire 和 `repack` 支持此选项。

以下子命令可用

write

写入新的 MIDX 文件。write 子命令支持以下选项

--preferred-pack=<pack>

指定时,如果其他包中存在对象的额外副本,则优先选择此包。对于在首选包中未找到的对象,始终优先选择 mtime 最高的包中的副本。如果未指定,默认使用 mtime 最低的包。首选包必须至少包含一个对象。

--[no-]bitmap

控制是否写入多包位图。

--stdin-packs

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

--refs-snapshot=<path>

结合 --bitmap,可选指定一个文件,其中包含在重新打包之前获取的“引用快照”。

引用快照由与引用提示对应的、以行分隔的 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