git index-pack

优质
小牛编辑
126浏览
2023-12-01

名称

git-index-pack - 为现有打包归档文件生成包索引文件

概要

git index-pack [-v] [-o <index-file>] <pack-file>git index-pack --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]                 [<pack-file>]

描述

从指定文件读取压缩归档文件(.pack),并为其构建一个包索引文件(.idx)。打包的压缩文件和包索引可以放在 Git 仓库的 objects / pack / 目录中。

选项

-v

详细了解正在发生的事情,包括进度状态。

-o <index-file>

将生成的包索引写入指定的文件。如果没有这个选项,包装索引文件的名称是通过将 .pack 替换为 .idx(并且如果打包归档的名称不以 .pack 结尾,则程序失败)从打包归档文件的名称构造的。

--stdin

提供此标志时,将从 stdin 中读取该包,然后将副本写入<pack-file>。如果未指定<pack-file>,那么该包将被写入当前 Git 存储库的 objects / pack / 目录,其默认名称将根据包内容确定。如果未指定<pack-file>,请考虑使用--keep 来防止此进程与之间的争用情况git repack

--fix-thin

通过将已分类对象所基于的排除对象添加到包中,修复由(请参阅git-pack-objects [1]获得的详细信息)git pack-objects --thin生成的“瘦” 包。这个选项与--stdin 一起使用才有意义。

--keep

在将索引移动到其最终目标之前,请为关联的包文件创建一个空的.keep 文件。该选项通常需要使用--stdin 来防止同时git repack进程删除新构建的包和索引,然后才能更新引用以使用包中包含的对象。

--keep=<msg>

像--keep 在将索引移动到其最终目标之前创建一个.keep 文件,而不是创建一个空文件位置,然后<msg>将LF放入.keep 文件中。稍后可以在所有.keep 文件中搜索该<msg>消息以找到任何已失效的文件。

--index-version=<version>,<offset>

这仅供测试套件使用。它允许强制生成的包索引的版本,并强制位于给定偏移量以上的对象上的64位索引条目。

--strict

死亡,如果包装包含破碎的物体或链接。

--check-self-contained-and-connected

如果包装中含有损坏的链接,则死亡。仅限内部使用。

--threads=<n>

指定解析变化量时产生的线程数。这要求使用 pthread 编译索引包,否则该选项会被忽略并带有警告。这是为了减少多处理器机器的打包时间。然而,增量搜索窗口所需的内存量乘以线程数量。指定0将导致 Git 自动检测 CPU 的数量并使用最多3个线程。

--max-input-size=<size>

死亡,如果包装大于<尺寸>。

注意

索引创建完成后,将对对象名称列表进行排序,并将该列表的 SHA-1 哈希值打印到 stdout。如果还使用了--stdin,则以“pack \ t”或“keep \ t”作为前缀,前提是已成功创建新的.keep 文件。这对删除用作锁的.keep 文件非常有用,可防止上述git repack竞争。