git log --decorate --pretty=oneline
を実行すると、出力には(HEAD, refs/published/master, master)
などのエントリが色付きで表示されます。
また、gitconfigには次のものがあります。
[color "branch"]
current = yellow reverse
local = yellow
remote = green
次のようなカスタム形式を行うときに、これらの色をどのように複製しますか?
git log --decorate --stat --graph --pretty=format:"%d %Cgreen%h%Creset (%ar - %Cred%an%Creset), %s%n"
Git 1.8.3(2013年5月24日)では、%C(auto)
を使用して_%d
_のフォーマット文字列で_git log
_を修飾できます。
リリースノート から:
_ * "git log --format" specifier learned %C(auto) token that tells Git
to use color when interpolating %d (decoration), %h (short commit
object name), etc. for terminal output.)
_
git log --decorate
はデフォルトで次を配置します。
color.decorate
configで変更できます。
しかし、 git log --format
は、HEAD
を具体的に表示する方法を提供しません。or remotes or branch:3つすべて%d
を介して表示され、1色が可能です。
Elad Shahar による 下記を参照 (アップグレード)として、2013年5月を更新し、git 1.8.3にはもう1つのオプションがあります:
git log –format
は、端末出力に%d
(装飾)、%h
(短いコミットオブジェクト名)などを解決するときにGitに色を使用するよう指示する%C(auto)
トークンをサポートするようになりました。
この Atlassianブログの投稿 は、この機能がフォーマット(git rebase
、git count-objects
)および色(git branch -vv
)に焦点を当てた他のいくつかの機能の一部であるとコメントしています
これは、以前の auto,reset
of 1.8.2 に追加されます。これは、端末1で出力が使用されない場合に自動的に色を無効にします
%C(auto,blue)Hello%C(auto,reset)
注:git 2.4+(2015年第2四半期)では、ブランチ名の周りの色をより適切にリセットできます。
commit 5ee8758 による Junio C Hamano(gitster
) :
log --decorate
:次のアイテムに「コミット」色を漏らさない「
git log --decorate
」には、次のようなコミットヘッダーが表示されます。
commit ... (HEAD, jc/decorate-leaky-separator-color)
「
commit ... (
」はcolor.diff.commit
に、「HEAD
」はcolor.decorate.head
に、「,
」はcolor.diff.commit
に、ブランチ名はcolor.decorate.branch
を閉じ、)
の「color.diff.commit
」を閉じます。HEADとローカルブランチ名を本文と同じ色でペイントしたい場合(おそらく、黒と白の端末ではシアンと緑がかすかに読みにくいため))、あなたは言いたくないでしょう
[color "decorate"]
head = black
branch = black
これは、黒地に白の端末で同じ構成を再利用できないためです。あなたは素朴に期待するでしょう
[color "decorate"]
head = normal
branch = normal
動作しますが、残念ながら動作しません。
文字列「HEAD
」とブランチ名を、装飾要素間の開き括弧またはコンマと同じ色でペイントします。
これは、コードが「プレフィックス」を独自の色で印刷した後、色のリセットを忘れているためです。
Git 2.5(2015年第2四半期)ではバグが修正されていることに注意してください。
commit 429ad2 by Junio C Hamano(gitster
) 、2015年5月13日を参照してください。
( Junio C Hamano-gitster
- in commit fd7078 、2015年5月22日)
log
:装飾名を短くしすぎないでくださいGit 2.4の「
log --decorate
」の機能強化は、現在のブランチの先端でコミットを表示します。 「HEAD -> master
」、-decorate = fullでは機能しませんでした。
Git 2.9.x +(2016年第3四半期)は別のバグを修正し、 %C(auto)
のcolor=auto
を称える
Git 2.10.2(2016年10月)は、 commit 82b83da (2016年9月29日)、および commit c99ad27 (2016年9月17日)による RenéScharfe( `` ) 。
( コミットC浜野-gitster
- 内の commit 76796d4 、2016年10月28日)
pretty
:出力が空の場合、%C(auto)
のリセットを追加しない
%C(auto)
の色と属性をリセットするためのエスケープシーケンスを発行して、自動カラーリングが意図したとおりに表示されるようにします。
出力strbufが空の場合、つまり、%C(auto)
がフォーマット文字列の先頭にある場合、リセットを行う必要がなく、出力に数バイトを保存するため、実行を停止します。
pretty
:%C(auto)
にすべての属性をリセットさせます色のリセットおよび属性に
%C(auto)
を適用すると、色を完全に自動制御できます。 それ以外の場合、ボールドやリバースなどの属性は、以前の%C
プレースホルダーから引き続き有効です。
それらを括弧で囲みます:
%C(...): color specification, as described in color.branch.* config option
したがって、%C(yellow reverse)
は機能します。
構成オプションlog.decorate
は、ログのデフォルトの装飾を有効/無効にすることができます。
git config --global log.decorate full
それが完了したら、color.decorate.*
を使用して色で遊ぶことができます
これを使用したい人もいるでしょう:%C(colorname)
これは色の設定を変更する必要はありません。
例:著者名を黄色に色付けする
--pretty=format:"%C(yellow)%an%Creset"
通常のANSIカラーは機能するはずです https://en.wikipedia.org/wiki/ANSI_escape_code