英語 ▾ トピック ▾ 最新バージョン ▾ 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

このフラグが指定されると、パックは代わりに標準入力から読み取られ、コピーが <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 ファイルを作成します。このオプションは通常、--stdin とともに必要であり、ref がパックに含まれるオブジェクトを使用するように更新される前に、同時に実行されている git repack プロセスが新しく構築されたパックとインデックスを削除するのを防ぎます。

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