2つのバージョン間で行が数回変更された場合、gitblameはその行の最新のコミットのみを表示するようです。
その行のすべてのコミットを表示させることは可能でしょうか?
その行のすべてのコミットを同時に表示することについてはわかりませんが、git blame SHA~ -- filename
. 非難の繰り返しごとに、その行を変更した次の「最新の」SHA を挿入するだけです。
例: 最初に実行git blame foo.php
すると、行が によって変更されたことが表示されるf8e2e89a
ため、終了して を実行するとgit blame f8e2e89a~ -- foo.php
、git は の前に行を変更したユーザーを表示しますf8e2e89a
。すすぎ、必要に応じて繰り返します。
git blame
それ自体はできません(ただし、回避策については以下を参照してください)。
ただしgit gui
、コミットにドリルダウンできる非難モードがあります。
インストールしたら起動しgit gui blame <filename>
ます。
の目的はgit blame
、特定のファイルのどの行を最後に変更したコミットかを示すことです。同じ行の複数のバージョンを表示するオプションはありません。
でやりたいことはできませんがgit blame
、word-diff アルゴリズムまたはその他のカスタム diff ツールを使用すると、それに近づく可能性があります。特に、次のようにログ出力に行ごとの単語の差分を表示できます。
# Show deletions delimited with [- -], and additions with {+ +}.
git log --patch --word-diff=plain