it-swarm-ja.com

gitの出力に色を付ける方法は?

Git(または任意のコマンド)の出力に色を付ける方法はありますか?

検討してください:

[email protected]:~/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")
[email protected]:~/Rails/spunky-monkey$ git add app/models

そして

[email protected]:~/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

しかし、コマンド出力に色を追加するためのより一般的な解決策はありますか?

269
B Seven

セクションを作成できます[color]あなたの~/.gitconfig例:次の内容

[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

これであなたが始められることを願っています。そしてもちろん、色をサポートする端末が必要です。

279
Marco

おそらく使いたい

git config --global color.ui auto

autoの部分は、gitがそれをサポートする端末でのみ色を使用しようとすることを示しています。たとえば、gitコマンドの出力をファイルにリダイレクトした場合、ANSIシーケンスは取得されません。 trueに設定することはautoと同じであり、これはGit 1.8.4以降のデフォルトでもあります。

color.uiは、gitコマンドで使用できるさまざまなcolor.*構成をすべて含むメタ構成です。

これについては、git help configで詳しく説明しています。

235
Evgeny
git config --global color.ui auto
git config --global color.branch auto
git config --global color.status auto
20
sakisk

受け入れられた答えは、最も一般的な解決策を提供します。なんらかの理由で構成を永続的に変更する必要がない場合は、そのソリューションのように、1つの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でサポートされていますnot git 1.7.1でサポートされています。

17
Hamlet
git config --global color.ui always
git config --global color.branch always
git config --global color.diff always
git config --global color.interactive always
git config --global color.status always
git config --global color.grep always
git config --global color.pager true
git config --global color.decorate always
git config --global color.showbranch always
11
mlibre

色付きのgit difflessにパイプされ、これは機能します:

git -c color.diff=always diff [...] | less -R
3
jox

任意のコマンド出力カラー でこれを行うことができます。それは主に機能しますが、入力を期待するプロンプトが表示されず、既知の必要な入力を入力してEnterキーを押してすべてのケースで続行することができないバグを回避する方法を私は理解していません。

git~/.acoc.confの例:

# git
[git/ae]
/.*(error:.*)/                                    red+bold
/.*(warning:.*)/                                  yellow
/.*(hint:.*)/                                     Magenta
/.*(up-to-date).*/                                green+bold
/.*(nothing to commit).*/                         green
/^(\+.*)/                                         green
/^(-.*)/                                          red

..これはalias git="acoc git".bash_profileとうまく連動します。

1
Tom Mahoney

投稿は4歳ですが、私のキャンプであるカラーブラインドからは誰も応答しませんでした。色を区別できる場合は、私の投稿を無視してください。

たとえば、「git status」は、背景が白/白の背景が黒のテキスト(判読可能)、削除された場合は濃い灰色(黒の背景では判読不能、白の背景では判読可能)、追加された場合は中程度の灰色(大麦は黒で判読可能)のテキストを出力します。背景、白い背景では判読できません)。端末ウィンドウの背景を白/黒に切り替えて、判読できないテキストを読みました。簡単な解決策はもっとあります:

 git status | more

これにより、標準の白または黒の背景のターミナルウィンドウですべてのテキストが読みやすくなります。

git diffの出力を色分けするには、color.diffセクションを〜/ .gitconfigに追加します。例えば:

[color "diff"]
  new = bold italic 154
  old = bold italic 196

ここで154および196はANSI 256色コードです。詳細については、man git configをご覧ください。

0
sergio

または、すべて/ほとんどのカラー化をオフにします。

git config --global color.ui false
git config --global color.branch false
git config --global color.diff false
git config --global color.interactive false
git config --global color.status false
git config --global color.grep false
git config --global color.pager false
git config --global color.decorate false
git config --global color.showbranch false
0
theRiley

https://github.com/dandavison/delta を見て、(git)diff出力の色分けされた言語構文の強調表示と、diffに追加/削除された行の色分けされた強調表示を確認してください。

0
ded7