Există o modalitate de colorare a ieșirii pentru git (sau orice comandă)?

Luați în considerare:

 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  

Și

 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 #  

Rezultatul arată la fel, dar informațiile sunt total diferite: fișierul a trecut de la unstaged la staged pentru commit.

Există o cale pentru a coloriza ieșirea? De exemplu, fișierele care nu sunt etapizate sunt roșii, etapizate sunt verzi?

Sau chiar Changes not staged for commit: la roșu și # Changes to be committed: la verde?

Lucrând în Ubuntu.

EDIT: Google a găsit acest răspuns care funcționează excelent: git config --global --add color.ui true.

Cu toate acestea, există vreo soluție mai generală pentru adăugarea de culoare la un ieșire comandă?

Comentarii

  • Doriți ceva care să colorizeze toate ieșirile comenzii? Cum ar ști ce părți să coloreze?
  • Cred că a existat o modalitate de a o configura folosind regex: fiecare culoare ar putea avea o regex de pornire. Și ar putea exista o regex de culoare implicită pentru a opri toate culorile. Și, dacă apare textul ” foo „, afișați-l într-o anumită culoare …

Răspuns

Puteți crea o secțiune [color] în ~/.gitconfig cu ex conținutul următor

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

De asemenea, puteți controla fin ce doriți să fi colorat în ce fel, de ex.

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

Sper că acest lucru vă va ajuta să începeți. Și, desigur, aveți nevoie de un terminal care acceptă culoarea.

Comentarii

  • Cred că ar merita să puneți git config –global color.ui auto (@Evgeny ‘ s răspuns) în partea de sus a dvs. … Cred că ‘ este probabil ceea ce sunt cei mai mulți oameni caut. ‘ le-am votat pe amândouă … ‘ spun doar, de dragul internetului așa cum vine aici, cred că o mulțime de oameni își doresc doar acea linie simplă. Cu atât mai bine dacă o primesc, plus bunătatea ta suplimentară.
  • Acest lucru a funcționat perfect pentru mine – în secțiunea [color "status"] am adăugat branch = yellow.
  • puteți adăuga secțiunea [color] la fișierul .git / config ‘ s. poate seta doar o variabilă de configurare pentru o singură invocare a unei comenzi git: stackoverflow.com/a/18304605/134044

Răspuns

Probabil că doriți să utilizați

git config --global color.ui auto 

spune că git va încerca să folosească doar culoarea pe terminalele care o acceptă și nu veți obține secvențe ANSI dacă redirecționați ieșirea comenzilor git către un fișier, de exemplu. Setarea la true este aceeași cu auto și aceasta este, de asemenea, implicită de la Git 1.8.4.

color.ui este o meta configurație care include toate diversele configurații color.* disponibile cu comenzi git.

Acest lucru este explicat în profunzime în git help config.

Comentarii

  • Puteți explica diferența dintre color.ui true (spre care auto indică) versus always? Am citit documente , dar tot nu primesc diferența.
  • @chharvey color.ui = auto + git diff | less – fără culori, color.ui = always + git diff | less – ieșire colorată. LESS=-R este implicit.

Răspuns

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

Comentarii

  • FYI, numai acest lucru a funcționat pentru versiunea git 1.5.2.1, alte răspunsuri nu au ‘ t.

Răspuns

Răspunsul acceptat oferă cea mai comună soluție. Dacă, din orice motiv, nu trebuie să modificați permanent configurația, pe care o face soluția respectivă, puteți suprascrie configurația pentru o singură comandă git:

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

De exemplu :

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

Testat: acceptat pe git 2.4.6, nu acceptat pe git 1.7.1.

Comentarii

  • Pentru oricine altcineva încearcă să obțină culoare atunci când introduceți canalul în less așa cum tocmai am fost, puteți crea less trece caracterele de evadare a culorii către terminal prin less -R.
  • Când a fost adăugată această caracteristică?

Răspuns

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 

Răspuns

sau dezactivați toată / cea mai mare parte a colorizării prin:

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 

Comentarii

  • OP nu dorea ‘ să caute să oprească culorile , mai degrabă să activeze culorile . În PO el a declarat cum să facă pentru git și dorește un mod de a face acest lucru într-un sens mai global. Dacă știți o astfel de metodă, vă rugăm să editați răspunsul pentru a explica acest lucru.
  • uneori oamenii caută ceva strâns legat, dar ușor diferit – dar mulțumesc pentru votul negativ.
  • Mi-a plăcut it @theRiley

Răspuns

Pentru un git diff colorat în less, acest lucru funcționează:

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

Răspuns

Puteți face acest lucru cu Colorator de ieșire comandă arbitrară . Majoritatea funcționează, dar nu mi-am dat seama cum să rezolv o eroare în care solicitările care așteaptă intrarea nu sunt afișate și nu puteți tasta pur și simplu introducerea necesară cunoscută și apăsați Enter pentru a continua în fiecare caz.

Exemplu de ~/.acoc.conf pentru git:

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

. .care funcționează frumos împreună cu alias git="acoc git" în .bash_profile.

Comentarii

  • Puteți distribui configurația dvs. pentru acoc?
  • Nvm, a fost ușor de scris. 🙂 Adăugat la răspuns.

Răspuns

Știu că postarea are patru ani, dar nimeni nu a răspuns din tabăra mea, daltonist. Dacă poți distingeți culorile, ignorați postarea mea.

„starea git” de exemplu scoate textul alb pe fundal / negru pe fundal alb (lizibil), gri închis pentru șters (ilizibil pe fundal negru, dar lizibil împotriva un fundal alb) și gri mediu pentru un dded (orz lizibil pe fond negru, ilizibil pe fond alb). Obișnuiam să comut fundalul ferestrei terminalului la / de la alb / negru, astfel încât să pot citi textul ilizibil. O soluție simplă este mai mult:

 git status | more 

Acest lucru face ca tot textul să fie lizibil pe o fereastră terminală standard de fundal alb sau negru.

Comentarii

  • De asemenea, puteți schimba configurarea pentru a seta totul la nici o culoare în mod implicit (color.ui = never).

Răspuns

Pentru a coloriza ieșirea din git diff puteți adăuga o secțiune color.diff la ~ / .gitconfig. De exemplu:

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

Aici 154 și 196 sunt ANSI Coduri de 256 de culori. Pentru mai multe detalii, consultați man git config.

Răspuns

Aruncați o privire la https://github.com/dandavison/delta pentru evidențierea sintaxei limbii colorate a ieșirii (git) diff și evidențierea colorată a liniilor adăugate / eliminate în .

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *