How to emulate git log --decorate's different colors per branch-type

那年仲夏 提交于 2019-12-29 10:53:06

问题


In making my favorite git log view I've created this alias:

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

This creates an output like:

What I'm missing here is the different coloring of branch types like in log --oneline --decorate --graph.

The --decorate (which uses =short by default) gives the different recognized branches a different color. The branch types (HEAD, origin/master, origin/HEAD, master) are colored cyan, red, red, green. Mine however are uncolored; colored only with the yellow of the whole branches part.

Is there a way to give different colors to the different kind of branches with an own alias?


回答1:


Per https://stackoverflow.com/a/16844346/55948

As of git 1.8.3 (May 24, 2013), you can use %C(auto) to decorate %d in the format string of git log.

From the release notes:

 * "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.)



回答2:


I don't believe this is possible. Looking through the git-log(1) man page, the only relevant format for --pretty seems to be %d, which gives you all the ref names. Since there aren't any options which distinguish the type of reference, you can't give each type a different color.

See also this question.



来源:https://stackoverflow.com/questions/12694510/how-to-emulate-git-log-decorates-different-colors-per-branch-type

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!