问题
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 ofgit 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