日本語 ▾ トピック ▾ 最新バージョン ▾ git-patch-id は 2.39.0 で最終更新

名前

git-patch-id - パッチの一意のIDを計算する

書式

git patch-id [--stable | --unstable | --verbatim]

説明

標準入力からパッチを読み取り、そのパッチIDを計算します。

「パッチID」は、パッチに関連付けられたファイル差分のSHA-1の合計にすぎず、行番号は無視されます。そのため、「ある程度安定」していますが、同時にある程度一意でもあります。つまり、同じ「パッチID」を持つ2つのパッチは、ほぼ間違いなく同じものであると保証されます。

このコマンドの主なユースケースは、重複している可能性のあるコミットを探すことです。

*git diff-tree* の出力 を処理する場合、パッチがコミットのオブジェクト名でプレフィックスされているという事実を利用し、2つの40バイトの16進数文字列を出力します。最初の文字列はパッチIDで、2番目の文字列はコミットIDです。これは、パッチIDからコミットIDへのマッピングを作成するために使用できます。

オプション

--verbatim

入力されたパッチIDをそのまま計算し、空白文字は削除しません。

This is the default if patchid.verbatim is true.
--stable

パッチIDとして「安定した」ハッシュの合計を使用します。このオプションを使用すると、

  • パッチを構成するファイル差分の順序を変更してもIDには影響しません。特に、「-O<orderfile>」の2つの異なる設定で同じ2つのツリーを比較して生成された2つのパッチは、同じパッチID署名になり、計算された結果を2つのツリー間の変更に関するメタ情報をインデックス化するためのキーとして使用できるようになります。

  • 結果は、Git 1.9以前で生成された値や、「不安定な」ハッシュ (--unstable を参照) が設定されている場合に生成された値とは異なります。これは「-O<orderfile>」を使用せずに取得されたdiff出力に使用された場合でも同様であり、そのような「不安定な」または履歴的なパッチIDを保存している既存のデータベースは使用できなくなります。

  • パッチ内のすべての空白は無視され、IDには影響しません。

    This is the default if patchid.stable is set to true.
--unstable

パッチIDとして「不安定な」ハッシュを使用します。このオプションを使用すると、生成される結果はGit 1.9以前で生成されたパッチIDの値と互換性があり、空白は無視されます。Git 1.9以前で生成されたパッチIDを格納する既存のデータベースを使用しているユーザー(再順序付けされたパッチを扱わないユーザー)は、このオプションの使用を検討するとよいでしょう。

This is the default.

GIT

git[1] スイートの一部

scroll-to-top