日本語 ▾ トピック ▾ 最新バージョン ▾ git-annotate は 2.50.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> は次のいずれかの形式を取ることができます

  • number

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

  • /regex/

    この形式は、与えられた POSIX 正規表現に一致する最初の行を使用します。<start> が正規表現の場合、以前の -L 範囲があればその末尾から、なければファイルの先頭から検索します。<start>^/regex/ の場合、ファイルの先頭から検索します。<end> が正規表現の場合、<start> で与えられた行から検索を開始します。

  • +offset または -offset

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

<start><end> の代わりに :<funcname> が与えられた場合、それは <funcname> に一致する最初の関数名行から次の関数名行までの範囲を示す正規表現です。:<funcname> は、以前の -L 範囲があればその末尾から、なければファイルの先頭から検索します。^:<funcname> はファイルの先頭から検索します。関数名は、git diff がパッチのチャンクヘッダーを生成する方法と同じ方法で決定されます (gitattributes[5] の「カスタムチャンクヘッダーの定義」を参照)。

-l

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

-t

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

-S <revs-file>

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

--reverse <rev>..<rev>

履歴を逆方向ではなく順方向に辿ります。行が出現したリビジョンを表示する代わりに、行が存在した最後のリビジョンを表示します。これは START..END のようなリビジョンの範囲を必要とし、blame するパスは START に存在する必要があります。便宜上、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 設定オプションが設定されている場合、無視されたコミットに触れられたが、別のリビジョンに帰属できなかった行は * でマークされます。porcelain モードでは、それぞれ ignoredunblamable が改行で出力されます。

--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