19
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

gitコマンドで端末(tty)以外へ出力する場合にも色をつける方法

Posted at

gitのリモートリポジトリの更新を確認する #git - Qiita を作ってる時に知ったTips

下記のように、gitコマンドの結果を端末へ出力する場合は、その結果に色を付けることができるのはみなさんご承知のことと思います。
(※ git config color.xxxx の値に依存します)

$ git status -s
 M hoge.txt    # <- カラー表示されます

しかし、パイプ使用時や、結果を変数へ保存する場合にはカラーになりません。

$ git status -s | cat
 M hoge.txt    # <- カラー表示されない

gitに限らず、カラー出力が可能なコマンドはだいたいこういう仕様になっているかと思います。
結果を加工する場合にはこの仕様はありがたいのですが、ときにはカラーコードを含んだ結果が欲しいこともあります。

そういう場合は以下のように実行することでカラーの結果が得られます。

$ GIT_PAGER_IN_USE=true git status | cat

$ output=$(GIT_PAGER_IN_USE=true git status)

また、一時的にコンフィグの値を変えてコマンドを実行するという方法もあります。

$ git config color.status
auto

$ git -c color.status=always status -s
 M hoge.txt    # <- カラー表示されます

$ git config color.status
auto

グローバルコンフィグの値は変わっていません。

このコンフィグの一時変更はカラー表示に限らず、他のケースにも応用出来そうなので覚えておくと良いのではないでしょうか。

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?