日本語 ▾ トピック ▾ 最新バージョン ▾ git-annotate は2.41.0で最終更新されました

名前

git-annotate - ファイルの行にコミット情報を注釈付けする

書式

git annotate [<options>] [<rev-opts>] [<rev>] [--] <file>

説明

指定されたファイルの各行に、その行を導入したコミットの情報を注釈付けします。オプションで、指定されたリビジョンから注釈付けを行います。

このコマンドとgit-blame[1]の唯一の違いは、出力フォーマットがわずかに異なる点です。このコマンドは、既存のスクリプトをサポートするための後方互換性のためだけに存在し、他のSCMシステムから移行してきた人々により馴染みのあるコマンド名を提供します。

オプション

-b

境界コミットに対して空のSHA-1を表示します。これはblame.blankBoundary設定オプションでも制御できます。

--root

ルートコミットを境界として扱いません。これはblame.showRoot設定オプションでも制御できます。

--show-stats

blame出力の最後に付加的な統計情報を含めます。

-L <start>,<end>
-L :<funcname>

<start>,<end>で指定された行範囲、または関数名正規表現<funcname>で指定された行範囲のみを注釈付けします。複数回指定できます。範囲の重複も許可されます。

<start><end>はオプションです。-L <start>または-L <start>,<start>からファイルの最後までを対象とします。-L ,<end>はファイルの先頭から<end>までを対象とします。

<start><end>は以下のいずれかの形式を取ることができます

  • 数値

    <start>または<end>が数値の場合、絶対行番号を指定します(行は1から数えます)。

  • /正規表現/

    この形式は、指定されたPOSIX正規表現にマッチする最初の行を使用します。<start>が正規表現の場合、もしあれば前の-L範囲の終わりから検索し、そうでなければファイルの先頭から検索します。<start>^/regex/の場合、ファイルの先頭から検索します。<end>が正規表現の場合、<start>で指定された行から検索を開始します。

  • +オフセット または -オフセット

    これは<end>にのみ有効で、<start>で指定された行の前後にある行数を指定します。

<start><end>の代わりに:<funcname>が与えられた場合、それは<funcname>にマッチする最初の関数名行から次の関数名行までの範囲を示す正規表現です。:<funcname>は、もしあれば前の-L範囲の終わりから検索し、そうでなければファイルの先頭から検索します。^:<funcname>はファイルの先頭から検索します。関数名は、git diffがパッチハンクヘッダーを決定するのと同様の方法で決定されます(gitattributes[5]の「Defining a custom hunk-header」を参照)。

-l

長いリビジョンを表示します(デフォルト: オフ)。

-t

生タイムスタンプを表示します(デフォルト: オフ)。

-S <revs-file>

git-rev-list[1]を呼び出す代わりに、revs-fileからリビジョンを使用します。

--reverse <rev>..<rev>

履歴を後方ではなく前方へ辿ります。行が出現したリビジョンを表示する代わりに、行が存在した最後のリビジョンを表示します。これは、STARTにblame対象のパスが存在するSTART..ENDのようなリビジョン範囲を必要とします。便宜上、git blame --reverse STARTgit blame --reverse START..HEADと解釈されます。

--first-parent

マージコミットを見た場合でも、最初の親コミットのみを辿ります。このオプションは、行が履歴全体に導入された時期ではなく、特定の統合ブランチに導入された時期を判断するために使用できます。

-p
--porcelain

機械が消費しやすい形式で表示します。

--line-porcelain

porcelain形式で表示しますが、コミットが最初に参照されたときだけでなく、各行のコミット情報を出力します。--porcelainを暗黙的に指定します。

--incremental

機械が消費しやすい形式で結果を増分的に表示します。

--encoding=<encoding>

著者名とコミットサマリーを出力する際に使用するエンコーディングを指定します。noneに設定すると、blame出力は変換されないデータになります。詳細については、git-log[1]マニュアルページのエンコーディングに関する説明を参照してください。

--contents <file>

指定されたファイルの内容を使用して注釈付けを行います。<rev>が指定されていればそこから、そうでなければHEADから開始します。ファイルの内容を標準入力から読み取るには、-を指定できます。

--date <format>

日付を出力する際に使用するフォーマットを指定します。--dateが指定されていない場合、blame.date設定変数の値が使用されます。blame.date設定変数も設定されていない場合、isoフォーマットが使用されます。サポートされている値については、git-log[1]の--dateオプションに関する説明を参照してください。

--[no-]progress

進捗状況は、ターミナルに接続されている場合、デフォルトで標準エラー出力ストリームに報告されます。このフラグは、ターミナルに接続されていない場合でも進捗報告を有効にします。--progress--porcelainまたは--incrementalと一緒に使用することはできません。

-M[<num>]

ファイル内で移動またはコピーされた行を検出します。コミットが行のブロックを移動またはコピーした場合(例: 元のファイルがAの後にBを持ち、コミットによってBの後にAに変更された場合)、従来のblameアルゴリズムは移動の半分しか認識せず、通常は上に移動した行(すなわちB)を親に、下に移動した行(すなわちA)を子コミットに帰属させます。このオプションを使用すると、追加の検査パスを実行することで、両方の行グループが親に帰属されます。

<num>はオプションですが、Gitがファイル内で移動/コピーとして検出し、それらの行を親コミットに関連付けるために必要な英数字の最小数です。デフォルト値は20です。

-C[<num>]

-Mに加えて、同じコミットで変更された他のファイルから移動またはコピーされた行を検出します。これは、プログラムを再編成してコードをファイル間で移動する際に役立ちます。このオプションが2回指定された場合、コマンドはファイルを作成するコミット内の他のファイルからのコピーも追加で探します。このオプションが3回指定された場合、コマンドは任意のコミット内の他のファイルからのコピーも追加で探します。

<num>はオプションですが、Gitがファイル間で移動/コピーとして検出し、それらの行を親コミットに関連付けるために必要な英数字の最小数です。デフォルト値は40です。複数の-Cオプションが指定された場合、最後の-Cの<num>引数が有効になります。

--ignore-rev <rev>

blameを割り当てる際に、その変更がなかったかのように、指定されたリビジョンによる変更を無視します。無視されたコミットによって変更または追加された行は、その行または近くの行を変更した以前のコミットに帰属されます。このオプションは、複数のリビジョンを無視するために複数回指定できます。blame.markIgnoredLines設定オプションが設定されている場合、無視されたコミットによって変更され、他のコミットに帰属された行は、blame出力で?が付けられます。blame.markUnblamableLines設定オプションが設定されている場合、無視されたコミットによって触れられたが、他のリビジョンに帰属できなかった行には*が付けられます。

--ignore-revs-file <file>

fileにリストされているリビジョンを無視します。このファイルはfsck.skipListと同じ形式である必要があります。このオプションは繰り返し指定でき、これらのファイルはblame.ignoreRevsFile設定オプションで指定されたファイルの後で処理されます。空のファイル名""は、以前に処理されたファイルからのリビジョンのリストをクリアします。

--color-lines

デフォルト形式の行アノテーションについて、前の行と同じコミットに由来する場合は異なる色を付けます。これにより、異なるコミットによって導入されたコードブロックを区別しやすくなります。デフォルトの色はシアンで、color.blame.repeatedLines設定オプションを使用して調整できます。

--color-by-age

デフォルト形式の行アノテーションについて、行の古さに応じて色を付けます。color.blame.highlightRecent設定オプションは、各年代範囲で使用される色を制御します。

-h

ヘルプメッセージを表示します。

関連項目

GIT

git[1]スイートの一部

scroll-to-top