"git show"はパイプを通して色文字を制御しません。

"git show"はパイプを通して色文字を制御しません。

git-show結果のリストを出力してポケットベルに接続しようとしています。
残念ながら色を保存することはできません。
これは私が実行しているコマンドです。
git log -n10 | awk '{print $1}' | xargs -d '\n' -I{} bash -c 'git show {}' -- | less -MR

パイプがない場合、| less -MR出力はカラーで印刷されます。
私もそれを試しましたが、less -r明らかに問題は、出力が別のコマンドにパイプされることを検出したときに色を維持しないようgit showです。xargsstdout

マニュアルxargsにも色の保持についての言及はありませんgit

lessポケットベルの出力で色を維持する方法は?

答え1

man git-showman git-diffカラー保存を強制する方法について説明します。以下からインポートしたようです。

   --color[=<when>]
       Show colored diff.  --color (i.e. without =<when>) is the same as --color=always.  <when> can be one of always, never, or auto.

更新されたbashコマンド:
git log -n10 | awk '{print $1}' | xargs -d '\n' -I{} bash -c 'git show --color=always {}' -- | less -MR

関連情報