4

このような git log エイリアスがあります

log --graph --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %ci %an - %s''

生産

* 123456 2013-03-01 09:45:11 +0100 Name Surname - commit message 1
* 123457 2013-03-01 09:45:11 +0100 Name LongerSurname - commit message 2
* 123458 2013-03-01 09:45:11 +0100 Name Sho - commit message 3

別の形式を取得したい、つまり

* 123456 2013-03-01 09:45:11 Name Surname - commit message 1
* 123457 2013-03-01 09:45:11 Name LongerS - commit message 2
* 123458 2013-03-01 09:45:11 Name Sho     - commit message 3

iso8601 が GMT+1 仕様を欠いていることに注意してください。また、ログ メッセージを整列させるために、長い名前が切り捨てられ、短い名前がパディングされていることに注意してください。

プレーンな git log でこれを行うことは可能ですか? そうでない場合、それを達成するための最良の方法は何ですか?

4

1 に答える 1

4

カーソルの移動にはANSIエスケープコードを使用できます。ポケットベルの設定も調整する必要があります。

export LESS+=' -r'  # Make sure your pager will accept ANSI escape codes
git log --graph \
  --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %ci %x1b[s%an%x1b[u%x1b[3C - %s'

使用されるエスケープコードは次のとおりです。

  1. %x1b[s-現在のカーソル位置を保存します
  2. %x1b [u-カーソル位置を復元します。つまり、%x1b[sを使用したときの位置にカーソルを移動します。
  3. %x1b [3C-カーソルを3桁前に移動します(表示する文字数に合わせて数値を変更できます。

これらのエスケープ文字を使用してカーソルを再配置した後、次のテキストは作成者名の末尾部分を上書きし、必要な効果を与えます。

日付については、コメントのリンクを確認してください:gitログの日付形式を変更する方法

于 2013-03-04T16:34:57.613 に答える