Existe uma maneira de colorir a saída para o git (ou qualquer comando)?
Considerar:
baller@Laptop:~/rails/spunky-monkey$ git status
# On branch new-message-types
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: app/models/message_type.rb
#
no changes added to commit (use "git add" and/or "git commit -a")
baller@Laptop:~/rails/spunky-monkey$ git add app/models
E
baller@Laptop:~/rails/spunky-monkey$ git status
# On branch new-message-types
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: app/models/message_type.rb
#
A saída parece a mesma, mas as informações são totalmente diferentes: o arquivo passou de não-estágios para estágios para confirmação.
Existe uma maneira de colorir a saída? Por exemplo, os arquivos que não estão em estágio são vermelhos, e em estágios são verdes?
Ou até Changes not staged for commit:
vermelho e # Changes to be committed:
verde?
Trabalhando no Ubuntu.
EDIT: Googling acharam esta resposta que funciona muito bem: git config --global --add color.ui true
.
No entanto, existe alguma solução mais geral para adicionar cores a uma saída de comando?
Respostas:
Você pode criar uma seção
[color]
no seu~/.gitconfig
com, por exemplo, o seguinte conteúdoVocê também pode controlar o que deseja colorir de que maneira, por exemplo,
Espero que isso ajude você. E, claro, você precisa de um terminal que suporte cores.
fonte
[color "status"]
seção que adicioneibranch = yellow
.Você provavelmente quer usar
A
auto
parte diz que o git só tentará usar cores nos terminais que o suportam, e você não obterá seqüências ANSI se redirecionar a saída dos comandos git para um arquivo, por exemplo. A configuraçãotrue
é igual aauto
, e esse também é o padrão desde o Git 1.8.4.A
color.ui
é uma meta-configuração que inclui todas as váriascolor.*
configurações disponíveis com os comandos git.Isso é explicado em profundidade
git help config
.fonte
true
(queauto
aponta para) versusalways
? Eu li os documentos, mas ainda não entendi a diferença.fonte
A resposta aceita fornece a solução mais comum. Se, por algum motivo, você não precisar alterar permanentemente a configuração, o que essa solução faz, você poderá substituir a configuração por um único comando git:
Por exemplo:
Testado: suportado no git 2.4.6, não suportado no git 1.7.1.
fonte
less
como eu acabei de fazer, é possívelless
passar os caracteres de escape de cor para o terminal vialess -R
.fonte
Você pode fazer isso com o Colorador de saída de comando arbitrário . Geralmente funciona, mas eu não descobri como solucionar um bug em que os avisos que esperam entrada não sejam mostrados e você não pode simplesmente digitar a entrada necessária conhecida e pressionar enter para continuar em todos os casos.
Exemplo de
~/.acoc.conf
paragit
:..que funciona muito bem, juntamente com
alias git="acoc git"
no.bash_profile
.fonte
acoc
?Para uma
git diff
tubulação coloridaless
, isso funciona:fonte
Eu sei que o post tem quatro anos, mas ninguém respondeu do meu acampamento, o daltônico. Se você consegue distinguir cores, ignore minha postagem.
"status git", por exemplo, coloca texto branco sobre fundo / preto sobre fundo branco (legível), cinza escuro para excluído (ilegível contra um fundo preto, mas legível contra um fundo branco) e cinza médio para adição (cevada legível em preto ilegível em fundo branco). Eu costumava alternar o fundo da minha janela do terminal para / de branco / preto para poder ler o texto ilegível. Uma solução simples é mais:
Isso torna todo o texto legível em uma janela de terminal de fundo branco ou preto padrão.
fonte
color.ui = never
).ou desative toda / quase toda a colorização por:
fonte
git
agir e quer uma maneira de fazê-lo em um sentido mais global. Se você conhece esse método, edite sua resposta para explicar isso.