Git
日本語 ▾ トピック ▾ 最新バージョン ▾ git-index-pack は 2.44.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リポジトリのオブジェクト/パック/ディレクトリに配置できます。

オプション

-v

進行状況など、何が起こっているかについて詳細な情報を表示します。

-o <index-file>

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

--[no-]rev-index

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

--stdin

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

--fix-thin

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

--keep

インデックスを最終的な場所に移動する前に、関連するパックファイルに対して空の.keepファイルを作成します。このオプションは通常、--stdinと一緒に使用して、同時に実行される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

内部使用のみ。

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

--check-self-contained-and-connected

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

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

パックに破損したオブジェクトが含まれている場合は停止しますが、--strictとは異なり、破損したリンクでは停止しません。パックに存在しない.gitmodules BLOBを指すツリーが含まれている場合は、パック/idxファイルの名前になるハッシュ(「注」を参照)の後に、その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ファイルに書き込まれます。詳細については、部分クローンを参照してください。

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

GIT

git[1]スイートの一部

scroll-to-top