日本語 ▾ トピック ▾ 最新バージョン ▾ git-index-pack 最終更新日: 2.48.0

名前

git-index-pack - 既存のパックされたアーカイブのパックインデックスファイルを作成する

概要

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>]

説明

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

オプション

-v

進行状況を含む、詳細な情報を出力します。

-o <index-file>

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

--[no-]rev-index

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

--stdin

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

--fix-thin

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

--keep

インデックスを最終的な宛先に移動する前に、関連するパックファイル用の空の .keep ファイルを作成します。このオプションは通常、上記の git repack との競合を防ぐために、--stdin と共に必要です。これにより、参照がパックに含まれるオブジェクトを使用するように更新される前に、新しく構築されたパックとインデックスが削除されるのを防ぎます。

--keep=<msg>

--keep と同様に、インデックスを最終的な宛先に移動する前に .keep ファイルを作成します。ただし、空のファイルを作成する代わりに、<msg> とそれに続く LF を .keep ファイルに書き込みます。<msg> メッセージは後ですべての .keep ファイル内で検索して、有用性がなくなったものを特定できます。

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

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

--strict[=<msg-id>=<severity>…​]

パックに破損したオブジェクトまたはリンクが含まれている場合、終了します。オプションで、カンマ区切りの <msg-id>=<severity> リストを渡すことで、いくつかの問題の重大度を変更できます。例えば、--strict="missingEmail=ignore,badTagName=error" のように指定します。<msg-id> および <severity> の可能な値に関する詳細については、git-fsck[1]fsck.<msg-id> 設定オプションのエントリを参照してください。

--progress-title

内部使用のみ。

プログレスバーのタイトルを設定します。デフォルトでは「Receiving objects」、--stdin が指定されている場合は「Indexing objects」です。

--check-self-contained-and-connected

パックに破損したリンクが含まれている場合、終了します。内部使用のみ。

--fsck-objects[=<msg-id>=<severity>…​]

パックに破損したオブジェクトが含まれている場合、終了します。ただし、--strict とは異なり、破損したリンクでは停止しません。パックに存在しない .gitmodules blob を指すツリーが含まれている場合、パック/インデックスファイルの名前になるハッシュの後に、その blob のハッシュ (呼び出し元が確認するため) を出力します (「注記」を参照)。

オプションで、カンマ区切りの <msg-id>=<severity> リストを渡すことで、いくつかの問題の重大度を変更できます。例えば、--fsck-objects="missingEmail=ignore,badTagName=ignore" のように指定します。<msg-id> および <severity> の可能な値に関する詳細については、git-fsck[1]fsck.<msg-id> 設定オプションのエントリを参照してください。

--threads=<n>

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

--max-input-size=<size>

パックが <size> より大きい場合、終了します。

--object-format=<hash-algorithm>

パックに指定されたオブジェクトフォーマット (ハッシュアルゴリズム) を指定します。有効な値は sha1 および (有効な場合) sha256 です。デフォルトは現在のリポジトリのアルゴリズム (extensions.objectFormat で設定) です。値が設定されていない場合やリポジトリ外の場合は sha1 です。

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

注: 現在、SHA-256リポジトリとSHA-1リポジトリの間には相互運用性はありません。

歴史的に、相互運用機能が導入される際に後方互換性のない変更が必要になる可能性があるため、SHA-256 リポジトリに対して警告していました。現在では、互換性のある変更のみを想定しています。さらに、そのような変更が必要であることが判明した場合でも、今日の Git で作成された SHA-256 リポジトリは、将来のバージョンの Git でデータ損失なく使用できると予想されます。

--promisor[=<message>]

パックインデックスをコミットする前に、このパックの .promisor ファイルを作成します。特に、パックの名前が完全に書き込まれるまで最終的ではないため、--fix-thin でプロミサーパックを書き込む場合に役立ちます。<message> が提供された場合、その内容は将来の参照のために .promisor ファイルに書き込まれます。詳細については、部分クローン を参照してください。

また、与えられたパックに非プロミサーオブジェクト (リポジトリ内) を参照するオブジェクトがある場合、それらの非プロミサーオブジェクトをプロミサーパックに再パックします。これにより、リポジトリにプロミサーオブジェクトを介してアクセスできる非プロミサーオブジェクトが存在する状況を回避します。

<pack-file> が指定されていない必要があります。

注記

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

GIT

git[1]スイートの一部

scroll-to-top