Cè un modo per colorare loutput per git (o qualsiasi comando)?

Considera:

 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 #  

Loutput ha lo stesso aspetto, ma le informazioni sono completamente diverse: il file è passato da unstaged a staged per il commit.

Esiste un modo colorare loutput? Ad esempio, i file non archiviati sono rossi, quelli non archiviati sono verdi?

O anche Changes not staged for commit: in rosso e # Changes to be committed: in verde?

Lavori in Ubuntu.

MODIFICA: Google ha trovato questa risposta che funziona alla grande: git config --global --add color.ui true.

Tuttavia, esiste una soluzione più generale per aggiungere colore a un output del comando?

Commenti

  • Vuoi qualcosa che colora tutti gli output dei comandi? Come potrebbe sapere quali parti colorare?
  • Immagino che se ci fosse un modo per configurarlo usando regex: ogni colore potrebbe avere una regex iniziale. E potrebbe esserci una regex di colore predefinita per disattivare tutti i colori. Inoltre, se viene visualizzato il testo ” foo “, visualizzalo in un determinato colore …

Risposta

Puoi creare una sezione [color] nel tuo ~/.gitconfig con es il seguente contenuto

[color] diff = auto status = auto branch = auto interactive = auto ui = true pager = true 

Puoi anche controllare con precisione ciò che desideri che sia colorato in che modo, ad esempio

[color "status"] added = green changed = red bold untracked = magenta bold [color "branch"] remote = yellow 

Spero che questo ti faccia iniziare. E, naturalmente, hai bisogno di un terminale che supporti il colore.

Commenti

  • Penso che potrebbe valere la pena mettere git config –global color.ui auto (@Evgeny ‘ s risposta) allinizio della tua … Penso che ‘ sia probabilmente ciò che è la maggior parte delle persone cercando. Ho ‘ ho votato entrambi … ‘ sto solo dicendo, per il bene di Internet come viene qui, penso che un molte persone vogliono solo quella semplice battuta. Tanto meglio se lo ottengono, più la tua bontà in più.
  • Questo ha funzionato perfettamente per me: nella sezione [color "status"] ho aggiunto branch = yellow.
  • puoi aggiungere la sezione [color] al progetto ‘ anche il file .git / config
  • E tu può semplicemente impostare una variabile di configurazione per una singola chiamata di un comando git: stackoverflow.com/a/18304605/134044

Risposta

Probabilmente vorrai utilizzare

git config --global color.ui auto 

Il auto dice che git proverà a usare il colore solo sui terminali che lo supportano, e non otterrai sequenze ANSI se reindirizzi loutput dei comandi git a un file, ad esempio. Limpostazione su true è uguale a auto e questa è anche limpostazione predefinita a partire da Git 1.8.4.

La color.ui è una meta configurazione che include tutte le varie color.* configurazioni disponibili con i comandi git.

Questo è spiegato in modo approfondito git help config.

Commenti

  • Puoi spiegare la differenza tra color.ui true (quale auto punta) rispetto a always? Ho letto i documenti ma continuo a non capire la differenza.
  • @chharvey color.ui = auto + git diff | less – nessun colore, color.ui = always + git diff | less – output colorato. LESS=-R è implicito.

Risposta

git config --global color.ui auto git config --global color.branch auto git config --global color.status auto 

Commenti

  • Cordiali saluti, solo questo ha funzionato per git versione 1.5.2.1, altre risposte non ‘ t.

Risposta

La risposta accettata fornisce la soluzione più comune. Se per qualsiasi motivo non è necessario modificare in modo permanente la configurazione, cosa che fa quella soluzione, è possibile sovrascrivere la configurazione per un singolo comando git:

git -c color.ui=always <usual git command and options> 

Ad esempio :

git -c color.ui=always status git -c color.ui=always diff 

Testato: supportato su git 2.4.6, non supportato su git 1.7.1.

Commenti

  • Per chiunque cerchi di ottenere il colore quando si collega a less come ho fatto io, puoi creare less passare i caratteri di escape del colore al terminale tramite less -R.
  • Quando è stata aggiunta questa funzione?

Risposta

git config --global color.ui always git config --global color.branch always git config --global color.diff always git config --global color.interactive always git config --global color.status always git config --global color.grep always git config --global color.pager true git config --global color.decorate always git config --global color.showbranch always 

Risposta

o disattiva tutta / la maggior parte della colorazione tramite:

git config --global color.ui false git config --global color.branch false git config --global color.diff false git config --global color.interactive false git config --global color.status false git config --global color.grep false git config --global color.pager false git config --global color.decorate false git config --global color.showbranch false 

Commenti

  • OP non ‘ stava cercando di disattivare i colori, piuttosto di attivare i colori . NellOP ha dichiarato come fare per git e vuole un modo per farlo in un senso più globale. Se conosci un tale metodo, modifica la tua risposta per spiegarlo.
  • a volte le persone cercano qualcosa di strettamente correlato ma leggermente diverso, ma grazie per il voto negativo.
  • Mi è piaciuto it @theRiley

Answer

Per un git diff colorato in less, funziona:

git -c color.diff=always diff [...] | less -R 

Risposta

Puoi farlo con Arbitrary Command Output Colourer . Per lo più funziona, ma non ho capito come aggirare un bug in cui i prompt che si aspettano un input non vengono visualizzati e non puoi semplicemente digitare linput necessario noto e premere Invio per continuare in ogni caso.

Esempio di ~/.acoc.conf per git:

# git [git/ae] /.*(error:.*)/ red+bold /.*(warning:.*)/ yellow /.*(hint:.*)/ magenta /.*(up-to-date).*/ green+bold /.*(nothing to commit).*/ green /^(\+.*)/ green /^(-.*)/ red 

. .che funziona bene insieme a alias git="acoc git" in .bash_profile.

Commenti

  • Puoi condividere la tua configurazione per acoc?
  • Nvm, è stato facile scrivere. 🙂 Aggiunto alla risposta.

Risposta

So che il post ha quattro anni ma nessuno ha risposto dal mio campo, daltonico. Se puoi distinguere i colori, ignorare il mio post.

“git status” ad esempio mette in evidenza il testo che è bianco su sfondo / nero su sfondo bianco (leggibile), grigio scuro per cancellato (illeggibile su sfondo nero ma leggibile su uno sfondo bianco) e grigio medio per a dded (orzo leggibile su sfondo nero, illeggibile su sfondo bianco). Ho usato per alternare lo sfondo della mia finestra di terminale da / a bianco / nero in modo da poter leggere il testo illeggibile. Una soluzione semplice è di più:

 git status | more 

Questo rende tutto il testo leggibile su una finestra terminale standard con sfondo bianco o nero.

Commenti

  • Puoi anche modificare la configurazione per impostare tutto su nessun colore per impostazione predefinita (color.ui = never).

Risposta

Per colorare loutput di git diff puoi aggiungere una sezione color.diff a ~ / .gitconfig. Ad esempio:

[color "diff"] new = bold italic 154 old = bold italic 196 

Qui 154 e 196 sono ANSI Codici a 256 colori. Per maggiori dettagli, vedi man git config.

Risposta

Dai unocchiata a https://github.com/dandavison/delta per levidenziazione colorata della sintassi del linguaggio delloutput diff (git) e levidenziazione colorata delle linee aggiunte / rimosse nel diff .

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *