web-dev-qa-db-ja.com

gitlogをエミュレートする方法-ブランチタイプごとに異なる色を装飾する

お気に入りのgitログビューを作成する際に、次のエイリアスを作成しました。

graph = log --pretty=format:'%Cgreen%ad%Creset %C(yellow)%h%Creset%C(yellow)%d%Creset %s %C(cyan)[%an]%Creset %Cgreen(%ar)%Creset' --date=short --graph

これにより、次のような出力が作成されます。

Git log result with own coloring

ここで欠けているのは、log --oneline --decorate --graphのようなブランチタイプの色の違いです。

Git log result with --decorate(=short)

--decorate(デフォルトでは= shortを使用)は、認識されるさまざまなブランチにさまざまな色を与えます。ブランチタイプ(HEAD, Origin/master, Origin/HEAD, master)は、シアン、赤、赤、緑に色分けされています。しかし、私のものは無着色です。枝全体の黄色のみで着色。

独自のエイリアスを持つブランチの異なる種類に異なる色を与える方法はありますか?

63
Lode

あたり https://stackoverflow.com/a/16844346/55948

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.)
92
kenwarner

私はこれが可能だとは思わない。 git-log(1) のマニュアルページを見ると、--prettyに関連する唯一の形式は%dのようです。これにより、すべての参照名がわかります。参照のタイプを区別するオプションがないため、各タイプに異なる色を付けることはできません。

この質問 も参照してください。

1
Trebor Rude