Git
日本語 ▾ トピック ▾ 最新バージョン ▾ 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 に影響しません。特に、同じ 2 つのツリーを "-O<orderfile>" の異なる設定で比較することによって生成された 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