I want to colorize git-status output so that:
untracked files = magenta new files = green modified files = blue deleted files = red
I am instead seeing staged files in green and unstaged files in blue:
My .gitconfig is setup with the following based on some searching:
[color] status = auto [color "status"] added = green changed = blue untracked = magenta deleted = red
Many tutorials teach users to set "color. ui" to "auto" as the first thing after you set " user.name/email " to introduce yourselves to Git. Now the variable defaults to " auto ". So you will see colors by default.
Green means the branch is ahead of its remote (green light to push) Red means the branch is behind its remote. Yellow means the branch is both ahead of and behind its remote.
The git status command displays the state of the working directory and the staging area. It lets you see which changes have been staged, which haven't, and which files aren't being tracked by Git. Status output does not show you any information regarding the committed project history.
From git config doc:
color.status.<slot>
Use customized color for status colorization.
<slot>
is one of:
header
(the header text of the status message),added
orupdated
(files which are added but not committed),changed
(files which are changed but not added in the index),untracked
(files which are not tracked by git),branch
(the current branch),nobranch
(the color the no branch warning is shown in, defaulting to red),localBranch
orremoteBranch
(the local and remote branch names, respectively, when branch and tracking information is displayed in the status short-format),unmerged
(files which have unmerged changes).The values of these variables may be specified as in
color.branch.<slot>
.
So this will work:
git config color.status.changed blue git config color.status.untracked magenta
However:
new files = green deleted files = red
Isn't possible: you need to pick one color:
color.status.added
.color.status.changed
.Note:
Colors may also be given as numbers between 0 and 255; these use ANSI 256-color mode (but not all terminals may support this).
See "xterm 256 colors" for those numbers, as noted in the comments by Joshua Goldberg.
Of course, as commented by elboletaire:
Remember to enable coloring output if it has not been enabled previously:
git config --global color.ui true
Shaun Luttin adds:
The command can also take multiple parameters in quotes. This includes two colors (foreground background) from this list:
normal, black, red, green, yellow, blue, magenta, cyan and white;
and it also includes one attribute (style) from this list:
bold, dim, ul, blink and reverse.
So this will work:
git config color.status.changed "blue normal bold" git config color.status.header "white normal dim"
Note: with git 2.9.1 (July 2016), The output coloring scheme learned two new attributes, italic and strike, in addition to existing bold, reverse, etc.
See commit 9dc3515, commit 54590a0, commit 5621068, commit df8e472, commit ae989a6, commit adb3356, commit 0111681 (23 Jun 2016) by Jeff King (peff
).
(Merged by Junio C Hamano -- gitster
-- in commit 3c5de5c, 11 Jul 2016)
It also allow "no-
" for negating attributes
Using "
no-bold
" rather than "nobold
" is easier to read and more natural to type (to me, anyway, even though I was the person who introduced "nobold
" in the first place). It's easy to allow both.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With