Git
English ▾ トピック ▾ 最新バージョン ▾ 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から数えます)。

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

履歴を逆方向にではなく順方向にたどります。行が表示されたリビジョンを表示する代わりに、行が存在していた最後のリビジョンを表示します。これには、blameの対象パスがSTARTに存在するSTART..ENDのようなリビジョンの範囲が必要です。git blame --reverse STARTは、便宜上git blame --reverse START..HEADとして扱われます。

--first-parent

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

-p
--porcelain

機械で処理しやすい形式で表示します。

--line-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)を親にblameし、下に移動した行(つまり、A)を子コミットにblameします。このオプションを使用すると、追加の検査パスを実行することで、両方の行のグループが親にblameされます。

<num>はオプションですが、Gitがファイル内で移動/コピーとして検出する必要がある英数字の文字数の下限です。デフォルト値は20です。

-C[<num>]

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

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

--ignore-rev <rev>

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

--ignore-revs-file <file>

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

--color-lines

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

--color-by-age

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

-h

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

参照

GIT

git[1] スイートの一部

scroll-to-top