git log で最大フィールド長を指定するにはどうすればよいですか? 出力列を揃えたい。
質問する
1396 次
2 に答える
8
外部ツールをまったく使用せずに列幅を指定できます。
git log --format="%<(25,trunc)%ad | %<(25,trunc)%s | %<(25,trunc)%an"
他のオプションのトンがあります。
%<|(25)
出力を列に揃えます。列を左バインド、右バインド、中央揃えなどにフォーマットできます: https://git-scm.com/docs/pretty-formats
残念ながら、これがいつ git に追加されたのかはわかりません。私は Windows で 2.10.1 を使用しています…</p>
于 2016-10-25T12:18:56.473 に答える
0
Windows を使用している場合は、PowerShell スクリプトを使用できます。出力間に特殊文字を使用してログをフォーマットし、そこからオブジェクトを作成し、次のFormat-Table
ように指定できる にパイプしますWidth
。
git log --format="%ad|%s|%an" | ForEach-Object {
New-Object PSObject -Property @{
Time = $_.Split('|')[0]
Message = $_.Split('|')[1]
Author = $_.Split('|')[2]
}
} | Format-Table -Property @{Expression={$_.Time};width=25;Label="Author date"},
@{Expression={$_.Message};Width=25;Label="Commit message"},
@{Expression={$_.Author};Width=11;Label="Author name"}
出力例:
Author date Commit message Author name
----------- -------------- -----------
Sun Jun 16 12:49:03 20... added rand content 60 ... Bonke
Sun Jun 16 12:46:56 20... added rand content 61 ... Bonke
Sun Jun 16 12:46:37 20... change Bonke
Wed Apr 24 22:41:44 20... added rand content 17 ... Klas Mel...
Wed Apr 24 22:40:16 20... added rand content 8 t... Klas Mel...
代わりに bash で実行したい場合は、bash の類似のスクリプトを次に示します ( Git ログの表形式への回答に触発されています)。
git log --pretty=format:'%ad|%s|%an' |
while IFS='|' read time message author
do
printf '%.25s %.25s %.11s\n' "$time" "$message" "$author"
done
サンプル出力
Sun Jun 16 12:49:03 2013 added rand content 60 to Bonke
Sun Jun 16 12:46:56 2013 added rand content 61 to Bonke
Sun Jun 16 12:46:37 2013 change Bonke
Wed Apr 24 22:41:44 2013 added rand content 17 to Klas Mellbo
Wed Apr 24 22:40:16 2013 added rand content 8 to . Klas Mellbo
于 2013-06-17T19:53:29.667 に答える