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ăugatbranch = 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 careauto
indică) versusalways
? 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 crealess
trece caracterele de evadare a culorii către terminal prinless -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 .