git(または任意のコマンド)の出力に色を付ける方法はありますか?
考慮事項:
baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: app/models/message_type.rb # no changes added to commit (use "git add" and/or "git commit -a") baller@Laptop:~/rails/spunky-monkey$ git add app/models
そして
baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: app/models/message_type.rb #
出力は同じように見えますが、情報はまったく異なります。ファイルはステージングされていない状態からステージングされてコミットされています。
方法はありますか出力を色付けするには?たとえば、ステージングされていないファイルは赤、ステージングされているファイルは緑ですか?
または、Changes not staged for commit:
を赤に、# Changes to be committed:
を緑に変更しますか?
Ubuntuで作業しています。
編集:グーグルはこの答えがうまく機能することを発見しました:git config --global --add color.ui true
。
ただし、色を追加するためのより一般的な解決策はありますかコマンド出力?
コメント
- すべてのコマンド出力を色付けするものが必要ですか?どの部分に色を付けるかをどのように知るのでしょうか?
- 正規表現を使用して構成する方法があるかどうかを推測します。各色には、開始正規表現を含めることができます。また、すべての色をオフにするデフォルトの色正規表現が存在する可能性があります。また、テキスト" foo "が表示された場合は、特定の色で表示します…
回答
~/.gitconfig
にセクション[color]
を作成できます。 div> with eg次のコンテンツ
[color] diff = auto status = auto branch = auto interactive = auto ui = true pager = true
また、どのように色を付けたいかを微調整することもできます。例:
[color "status"] added = green changed = red bold untracked = magenta bold [color "branch"] remote = yellow
これで始められるといいのですが。そしてもちろん、色をサポートする端末が必要です。
コメント
- git config –globalcolor.uiを配置する価値があると思います自動(@Evgeny 'の回答)があなたの一番上にあります… 'はほとんどの人がそうだと思います探している。私は'両方に賛成しました…私は'ただ言っています、ここに来るインターネットのために、私は多くの人は、そのシンプルなワンライナーを望んでいます。
- これは私にとって完璧に機能しました-
[color "status"]
セクションに。 - プロジェクトに[color]セクションを追加できます'の.git / configファイルも
- そしてあなたはgitコマンドの1回の呼び出しに対して構成変数を設定できます: stackoverflow.com/a/18304605/134044
回答
おそらく使用したい
git config --global color.ui auto
auto
の部分では、gitはそれをサポートする端末でのみ色を使用しようとし、たとえばgitコマンドの出力をファイルにリダイレクトした場合はANSIシーケンスを取得しないと述べています。 true
に設定することはauto
と同じであり、これはGit1.8.4以降のデフォルトでもあります。
color.ui
は、gitコマンドで使用できるさまざまなcolor.*
構成をすべて含むメタ構成です。
これについて説明します。 git help config
の詳細。
コメント
- color.uiの違いを説明してください
true
(auto
が指す)とalways
? ドキュメントを読みましたが、それでも違いがわかりません。 - @chharvey
color.ui = auto
+git diff | less
-色なし、color.ui = always
+git diff | less
-色付きの出力。LESS=-R
が暗示されます。
回答
git config --global color.ui auto git config --global color.branch auto git config --global color.status auto
コメント
- FYI、これはgitバージョン1.5.2.1でのみ機能し、他の回答は機能しませんでした' t。
回答
受け入れられた回答が最も一般的な解決策になります。何らかの理由で構成を永続的に変更する必要がない場合は、そのソリューションで行うように、単一のgitコマンドの構成をオーバーライドできます。
git -c color.ui=always <usual git command and options>
たとえば、 :
git -c color.ui=always status git -c color.ui=always diff
テスト済み:git 2.4.6でサポートされていますが、git1.7.1ではサポートされていません
コメント
-
less
にパイプするときに色を取得しようとしている他の人は、
カラーエスケープ文字をless -R
経由で端末に渡します。