SYNOPSIS

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

DESCRIPTION

指定されたファイルからパックされたアーカイブ(.pack)を読み取り、そのためのパックインデックスファイル(.idx)を作成します。オプションで、指定されたパックの逆インデックス(reverse-index)(.rev)を書き込みます。パックされたアーカイブは、パックインデックスとともに、Gitリポジトリの objects/pack/ ディレクトリに配置できます。

OPTIONS

-v

進捗状況など、何が起こっているかについて詳しく説明します。

-o <index-file>

生成されたパックインデックスを指定のファイルに書き込みます。このオプションがない場合、パックインデックスファイルの名前は、 .pack を .idx に置き換えることにより、パックされたアーカイブファイルの名前から作成されます(パックされたアーカイブの名前が .pack で終わらない場合、プログラムは失敗します)。

--[no-]rev-index

このフラグが指定されている場合、指定されたパックに対応する逆インデックス(reverse index)(.rev ファイル)を生成します。 --verify が指定されている場合は、既存の逆インデックスが正しいことを確認し保証(ensure)します。 pack.writeReverseIndex よりも優先されます。

--stdin

このフラグが指定されると、コマンドラインの代わりにパックがstdinから読み取られ、コピーが <pack-file> に書き込まれます。 <pack-file> が指定されていない場合、パックは現在のGitリポジトリの objects/pack/ ディレクトリに書き込まれ、デフォルト名はパックの内容から決定されます。 <pack-file> が指定されていない場合は、 --keep を使用して、このプロセスと git repack の間の競合状態を防ぐことを検討してください。

--fix-thin

デルタ化オブジェクトが基づいている除外されたオブジェクトをパックに追加することにより、 git pack-objects --thin によって生成された「薄い」パックを修正します(詳細は git-pack-objects(1) を参照)。 このオプションは、--stdin と組み合わせた場合にのみ意味があります。

--keep

インデックスを最終的な宛先に移動する前に、関連するパックファイル用に空の .keep ファイルを作成します。このオプションは通常、 --stdin と一緒に指定する必要があります。これは、パックに含まれるオブジェクトを使用するようにrefを更新する前に、 git repack プロセスが新しく構築されたパックとインデックスを同時に削除しないようにするためです。

--keep=<msg>

--keep のように、インデックスを最終的な宛先に移動する前に .keep ファイルを作成しますが、空のファイルを作成するのではなく、 .keep ファイル内で <msg> の後にLFを配置します。 後ですべての .keep ファイル内で <msg> メッセージを検索して、使い古されたものを見つけることができます。

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

これは、テストスイートでのみ使用することを目的としています。 生成されたパックインデックスのバージョンを強制し、指定されたオフセットにあるオブジェクトに64ビットインデックスエントリを強制することができます。

--strict

パックに壊れたオブジェクトやリンクが含まれている場合は、終了します(die)。

--progress-title

内部使用のみ。

プログレスバーのタイトルを設定します。 タイトルはデフォルトで「Receiving objects」(オブジェクトの受信)であり、 --stdin が指定されている場合は「Indexing objects」(オブジェクトのインデックス作成)です。

--check-self-contained-and-connected

パックに壊れたリンクが含まれている場合は終了(die)します。内部使用のみ。

--fsck-objects

内部使用のみ。

パックに壊れたオブジェクトが含まれている場合は終了(die)します。 存在しない .gitmodulesblob を指すツリーがパックに含まれている場合、 pack/idx ファイルの名前に含まれるハッシュの後に、(呼び出し元が確認できるように)そのブロブのハッシュを出力します(「Notes」参照)。

--threads=<n>

デルタを解決するときに生成するスレッドの数を指定します。これには、インデックスパックを pthreads でコンパイルする必要があります。そうでない場合、このオプションは警告とともに無視されます。これは、マルチプロセッサマシンでのパッキング時間を短縮することを目的としています。ただし、デルタ検索ウィンドウに必要なメモリ量は、スレッド数で乗算されます。0を指定すると、GitはCPUの数を自動検出し、最大3つのスレッドを使用します。

--max-input-size=<size>

パックが <size> を超える場合は、終了(die)します。

--object-format=<hash-algorithm>

パックに指定するオブジェクト形式(ハッシュアルゴリズム)を指定します。有効な値は sha1sha256 (有効な場合) です。デフォルトは、(extensions.objectFormat で設定する、)現在のリポジトリのアルゴリズム、または値が設定されていないかリポジトリの外部にある場合は sha1 です。

このオプションは --stdin オプションと一緒に使用することはできません。

このオプションは実験的なものです! SHA-256のサポートは実験的なものであり、まだ初期段階です。 SHA-256リポジトリは、通常、「通常の」SHA-1リポジトリと作業を共有できません。 たとえば、SHA-256リポジトリに関連するGit内部ファイル形式は、下位互換性のない方法で変更される可能性があると想定する必要があります。テスト目的でのみ --object-format=sha256 を使用してください。

--promisor[=<message>]

pack-index をコミットする前に、このパックの .promisor ファイルを作成します。 パックが完全に書き込まれるまでパックの名前は最終的ではないため、 --fix-thin を使用して プロミサー・パック(promisor pack)を書き込む場合に特に役立ちます。 <message> が指定されている場合、その内容は後で参照できるように .promisor ファイルに書き込まれます。 詳細については、 partial clone を参照してください。

NOTES

一旦インデックスが作成されると、 pack/idx ファイルの名前に含まれるハッシュがstdoutに出力されます。 --stdin も使用された場合、これには pack\t 、または新しい .keep ファイルが正常に作成された場合は keep\t の、どちらかのプレフィックスが付きます。 これは、 上記 git repack との競合を防ぐためにロックとして使用されている keep ファイルを削除するのに役立ちます。

GIT

Part of the git(1) suite