SYNOPSIS
git commit-graph verify [--object-dir <dir>] [--shallow] [--[no-]progress] git commit-graph write [--object-dir <dir>] [--append] [--split[=<strategy>]] [--reachable | --stdin-packs | --stdin-commits] [--changed-paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split options>
DESCRIPTION
シリアル化されたコミットグラフファイルを管理します。
OPTIONS
-
--object-dir
-
パックファイルとコミットグラフファイルの場所として、指定のディレクトリを使用します。このパラメータは、完全な
.git
ディレクトリではなく、objectsディレクトリのみを持つ代替の場所を指定するために存在します。コミットグラフファイルは<dir>/info
ディレクトリにあり、パックファイルは<dir>/pack
にあるものと期待されます。ディレクトリを絶対パスにすることができなかった場合、または既知のオブジェクトディレクトリと一致しない場合、git commit-graph ...
はゼロ以外のステータスで終了します。 -
--[no-]progress
-
進行状況を明示的にオン/オフにします。どちらも指定されていない場合、標準エラーが端末に接続されていれば進行状況が表示されます。
COMMANDS
-
write
-
パックファイルで見つかったコミットに基づいてコミットグラフファイルを書き出します。構成オプション
core.commitGraph
が無効になっている場合、このコマンドは警告を出力し、コミットグラフファイルを書き込まずに成功を返します。--stdin-packs
オプションと共に使用して、指定のパックインデックス内のオブジェクトのみをウォークすることにより、新しいコミットグラフを生成します。 (--stdin-commits
または--reachable
と組み合わせることはできません。)--stdin-commits
オプションと共に使用して、16進数のOIDのリストとしてstdinで指定されたコミットから始まるコミットを1行に1つずつウォークして、新しいコミットグラフを生成します。(直接に、またはタグの皮むきによって、)非コミットに解決されるOIDは黙って無視されます。不正な形式のOID、または存在しないOIDは、エラーを生成します。 (--stdin-packs
または--reachable
と組み合わせることはできません。)--reachable
オプションと共に使用して、すべての参照で開始するコミットをウォークして、新しいコミットグラフを生成します。 (--stdin-commits
または--stdin-packs
と組み合わせることはできません。)--append
オプションと共に使用して、既存のコミットグラフファイルに存在するすべてのコミットを含めます。--changed-paths
オプションと共に使用すると、コミットとその最初の親(first parent)の間で変更されたパスに関する情報を計算して書き込みます。この操作は、大規模なリポジトリでは時間がかかる場合があります。git log -- <path>
を使用すると、ディレクトリまたはファイルの履歴を取得するためのパフォーマンスが大幅に向上します。このオプションが指定されている場合、その後のコミットグラフ書き込みでは、このオプションが指定されたものであると自動的に想定されます。このデータの保存を停止するには、--no-changed-paths
を使用します。--max-new-filters=<n>
オプションと共に使用して、(--changed-paths
が指定されている場合、)最大でn
の新しいブルームフィルター(Bloom filters)を生成します。n
が-1
の場合、制限は適用されません。この制限に対しては、新しいレイヤーに存在するコミットのみがカウントされます。以前のレイヤーでブルームフィルターをさかのぼって計算するには、--split=replace
を使用することをお勧めします。commitGraph.maxNewFilters
構成をオーバーライドします。--split[=<strategy>]
オプションと共に使用して、<dir>/info/commit-graphs
に格納されている複数のコミットグラフファイルのチェーンとしてコミットグラフを記述します。コミットグラフレイヤーは、戦略およびその他の分割オプションに基づいてマージされます。コミットグラフにまだ含まれていない新しいコミットは、新しい先端ファイル(tip file)に追加されます。以下のマージ条件が満たされた場合、このファイルは既存のファイルとマージされます:-
--split=no-merge
が指定されている場合、マージは実行されず、残りのオプションは無視されます。--split=replace
は、既存のチェーンを新しいチェーンで上書きします。裸の--split
は後続のオプションに従います。 (注意: コミットグラフのチェーンをマージすると、既存のチェーンが長さ1のチェーンに置き換えられ、最初で唯一の増分がグラフ全体を保持することに注意してください)。 -
--size-multiple=<X>
が指定されていない場合は、 Xを2に等しくします。新しい先端ファイル(tip file)にN個のコミットがあり、以前の先端にM個のコミットがあり、「X 掛ける N」が M より大きい場合は、代わりに2つのファイルを1つのファイルにマージします。 -
--max-commits=<M>
オプションの M が正の整数で指定され、新しい先端ファイル(tip file) に M 以上のコミットがある場合は、代わりに新しい先端を以前の先端とマージします。最後に、
--expire-time=<datetime>
が指定されていない場合は、 datetimeを現在の時刻とします。分割コミットグラフ(split commit-graph)を書き込んだ後、変更時刻がdatetimeより古い未使用のコミットグラフをすべて削除します。
-
-
verify
-
コミットグラフファイルを読み取り、その内容をオブジェクトデータベースと照合して確認(verify)します。破損したデータをチェックするために使用されます。
--shallow
オプションと共に使用すると、分割コミットグラフ(split commit-graphs)のチェーン内の先端コミットグラフファイルのみをチェックします。
EXAMPLES
-
パックされたコミットのコミットグラフファイルをローカルの
.git
ディレクトリに書き込みます。$ git commit-graph write
-
<pack-index>
のコミットを使用して、現在のコミットグラフファイルを拡張するコミットグラフファイルを書き出します。$ echo <pack-index> | git commit-graph write --stdin-packs
-
到達可能なすべてのコミットを含むコミットグラフファイルを作成します。
$ git show-ref -s | git commit-graph write --stdin-commits
-
現在のコミットグラフファイル内のすべてのコミットと
HEAD
から到達可能なコミットを含むコミットグラフファイルを書き出します。$ git rev-parse HEAD | git commit-graph write --stdin-commits --append
CONFIGURATION
このセクションの以下のすべては、 git-config(1) ドキュメントの抜粋です。 内容は git-config(1) ドキュメント にあるものと同一です:
- commitGraph.generationVersion
-
commit-graph ファイルの書き込みまたは読み取り時に使用する世代番号バージョン(generation number version)のタイプを指定します。 バージョン 1 が指定されている場合、修正されたコミット日付は書き込まれたり読み取られたりしません。 デフォルトは 2 です。
- commitGraph.maxNewFilters
-
git commit-graph write
の--max-new-filters
オプションのデフォルト値を指定します(git-commit-graph(1) 参照)。 - commitGraph.readChangedPaths
-
trueの場合、gitはcommit-graphファイルで変更パスブルームフィルター(the changed-path Bloom filters)を使用します(存在し、有効な場合)。 デフォルトはtrueです。 詳細については、 git-commit-graph(1) を参照してください。
FILE FORMAT
GIT
Part of the git(1) suite