1. ホーム
  2. git

[解決済み] git log で継続を促さないようにするには?

2022-08-05 17:43:36

質問

私は、一緒になっているいくつかの git リポジトリと、それらをループするための簡単なバッチ/bash ファイルを持っています。私はしばしば、それらがどのような状態にあるかを素早く見るために、log コマンドを使用してそれらをループします。コミット・メッセージが私のコンソールの幅の文字数よりも長い(あるいは複数行ある)場合、git はその行を表示し、次に (END) で改行して、私が q を押さなければなりません(出力を より などでパイプするのでしょう)。 例

> gitloop . "git log --decorate=short --pretty=oneline -n1"
18629ae238e9d5832cb3535ec88274173337a501 (HEAD, origin/master, master) short log

625fb891b9b0b8648459b07ace662ae3b7773c7f (HEAD, origin/master, origin/HEAD, master) short log

dc0838118266ba8570ea338c1faddfe8af0387bb (HEAD, origin/work, origin/master, work, master) oops loooooooooooooong log
-(END)

を押さなければならないので、かなり不便です。 q を何度も押さなければならないので、かなり不便です。

どのようにしたらこの動作を無効にできますか (できれば、このログ形式を維持したまま)?

どのように解決するのですか?

Gitには、ページャーを無効にするオプションがあります。

git --no-pager log --decorate=short --pretty=oneline -n1

ページャーが行を切り、その動作を維持したい場合、パイプで cut ...

git --no-pager log --decorate=short --pretty=oneline -n1 | cut -c 1-$COLUMNS

...または、環境変数 GIT_PAGER を起動前に設定する。

GIT_PAGER="cut -c 1-${COLUMNS-80}" git log --decorate=short --pretty=oneline -n1