SYNOPSIS

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

DESCRIPTION

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

このコマンドと git-blame(1) の唯一の違いは、わずかに異なる出力形式を使用することです。このコマンドは、既存のスクリプトをサポートするための下位互換性のためにのみ存在し、他のSCMシステムから来た人々により馴染みのあるコマンド名を提供します。

OPTIONS

-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から数えます)。

  • /regex/

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

  • +offset or -offset

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

<start> と <end> の代わりに :<funcname> が指定されている場合、これは <funcname> に一致する最初の関数名行から次の関数名行までの範囲を示す正規表現です。 :<funcname> は、前の -L 範囲の末尾から検索します。それ以外の場合は、ファイルの先頭から検索します。 ^:<funcname> はファイルの先頭から検索します。関数名は、 git diff がパッチハンクヘッダーを処理するのと同じ方法で決定されます(gitattributes(5) の「Defining a custom hunk-header」参照)。

-l

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

-t

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

-S <revs-file>

git-rev-list(1) を呼び出す代わりに、revs-fileのリビジョンを使用します。

--reverse <rev>..<rev>

履歴を後方へではなく前方へウォークします。行があらわれたされたリビジョンを表示する代わりに、行が存在した最後のリビジョンを表示します。これには、START..END のように、STARTにblameのパスが存在するレビジョン範囲が必要です。 便宜上、 git blame --reverse STARTgit blame --reverse START..HEAD と見なされます。

--first-parent

マージコミットを確認したら、最初の親コミットのみを追跡します。 このオプションは、履歴全体にいつ導入されたかではなく、特定の統合ブランチにいつ導入されたかを判別するために使用できます。

-p
--porcelain

ソフトウェア等で使用するのに適した形式で表示します。

--line-porcelain

磁器形式で表示しますが、コミットが最初に参照されたときだけでなく、各行のコミット情報を出力します。 --porcelain の機能を含んでいます。

--incremental

ソフトウェア等で使用するのに適した形式で結果を段階的(incrementally)に表示します。

--encoding=<encoding>

作者名(author names)の出力と要約のコミットに使用されるエンコーディングを指定します。 これを none に設定すると、blame出力は変換されていないデータになります。詳細については、 git-log(1) のマニュアルページにある discussion の encoding に関する説明を参照してください。

--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」アルゴリズムは移動の半分だけに気づき、通常は行をblameします それは親に上に移動され(つまりB)、子のコミットに下に移動された(つまりA)行にblameを割り当てます。このオプションを使用すると、追加の検査パスを実行することにより、両方のグループの行が親のせいになります。

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

-C[<num>]

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

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

--ignore-rev <rev>

変更が発生しなかったかのように、blameを割り当てるときにリビジョンによって行われた変更を無視します。無視されたコミットによって変更または追加された行は、その行または近くの行を変更した前のコミットのせいになります。このオプションは、複数のリビジョンを無視するために複数回指定できます。 blame.markIgnoredLines 構成オプションが設定されている場合、無視されたコミットによって変更され、別のコミットに起因する行は、blame出力で ? でマークされます。 blame.markUnblamableLines 構成オプションが設定されている場合、別のリビジョンに帰することができなかった無視されたコミットによって触れられた行は、 * でマークされます。

--ignore-revs-file <file>

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

--color-lines

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

--color-by-age

デフォルトの形式では、行の経過時間に応じて行の注釈に色を付けます。 color.blame.highlightRecent 構成オプションは、年齢の各範囲で使用される色を制御します。

-h

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

SEE ALSO

GIT

Part of the git(1) suite