Van-e mód a git (vagy bármely parancs) kimenetének színezésére?

Fontolja meg:

 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  

És

 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 kimenet ugyanúgy néz ki, de az információk teljesen különböznek: a fájl lépcsőzetesből stádiumba került a véglegesítéshez.

Van rá mód színezni a kimenetet? Például a színezetlen fájlok pirosak, a színezettek zöldek?

Vagy akár Changes not staged for commit: pirosra, # Changes to be committed: pedig zöldre?

Ubuntuban dolgozik.

SZERKESZTÉS: A Google keresése megtalálta ezt a választ, amely remekül működik: git config --global --add color.ui true.

Van azonban általánosabb megoldás a szín hozzáadásához a parancs kimenete?

Megjegyzések

  • Szeretne valamit, amely az összes parancs kimenetét színesíti? Honnan tudná, mely részeket kell színezni?
  • Gondolom, ha a regex használatával lehetne konfigurálni: Minden színnek lehet kezdő regexe. Lehet egy alapértelmezett színregex, amely kikapcsolja az összes színt. Ha pedig megjelenik a ” foo ” szöveg, jelenítse meg egy bizonyos színnel …

Válasz

[color] szakaszt létrehozhat a ~/.gitconfig pl a következő tartalom

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

Azt is finomíthatja, hogy mit szeretne színezni, pl.

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

Remélem, ezzel elindul. És természetesen szükséged van egy terminálra, amely támogatja a színt.

Megjegyzések

  • Úgy gondolom, hogy érdemes lehet a git config –global color.ui auto (@Evgeny ‘ s válasz) a tetején … úgy gondolom, hogy valószínűleg az ‘ az, amit a legtöbb ember keresni. Én ‘ mindkettőt felértékeltem … Csak azt mondtam, hogy az internet kedvéért, ahogy ide jön, azt hiszem, egy sokan csak azt az egyszerű bélést akarják. Annál jobb, ha megkapják, plusz a te extra jóságod.
  • Ez nekem tökéletesen bevált – a [color "status"] részben hozzáadtam branch = yellow.
  • felveheti a [color] részt a ‘ s .git / config fájlba is
  • És Ön csak beállíthat egy konfigurációs változót a git parancs egyetlen meghívásához: stackoverflow.com/a/18304605/134044

Válasz

Valószínűleg használni szeretné

git config --global color.ui auto 

A auto rész azt mondja, hogy a git csak az őt támogató terminálokon fogja kipróbálni és használni a színt, és akkor nem kap ANSI szekvenciákat, ha a git parancsok kimenetét átirányítja például egy fájlba. A true értékre állítása megegyezik a auto -vel, és ez az alapértelmezett verzió a Git 1.8.4 óta.

A color.ui egy meta-konfiguráció, amely magában foglalja a git parancsokkal elérhető összes különféle color.* konfigurációt.

Ezt elmagyarázza. részletesen a git help config cikkben.

Megjegyzések

  • Meg tudja magyarázni a color.ui true (amelyre auto mutat) versus always? Olvastam a dokumentumokat , de még mindig nem értem a különbséget.
  • @chharvey color.ui = auto + git diff | less – nincsenek színek, color.ui = always + git diff | less – színes kimenet. A LESS=-R implikált.

Válasz

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

Megjegyzések

  • FYI, Csak ez működött az 1.5.2.1-es git verziónál, mások válaszok nem adtak ‘ t.

Válasz

Az elfogadott válasz adja a leggyakoribb megoldást. Ha valamilyen oknál fogva nem kell véglegesen módosítania a konfigurációt, amit a megoldás meg is valósít, akkor felülírhatja az egyetlen git parancs konfigurációját:

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

Például :

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

Tesztelve: a git 2.4.6-on támogatott, nem nem támogatott az 1.7.1-es giten.

Megjegyzések

  • Bárki más számára, aki színt próbál elérni, amikor a less ba vezet, mint én voltam, megteheti a less továbbítja a színes menekülési karaktereket a terminálhoz a less -R keresztül.
  • Mikor adták hozzá ezt a funkciót?

Válasz

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 

Válasz

vagy kapcsolja ki a színezés teljes / nagy részét:

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 

Megjegyzések

  • Az OP nem ‘ nem a színek kikapcsolására, hanem a be színek bekapcsolására törekedett . Az OP-ban megfogalmazta, hogyan kell eljárni a git ügyben, és valamilyen módon szeretné ezt globálisabban értelmezni. Ha tud ilyen módszerről, kérjük, szerkessze a válaszát, hogy magyarázza ezt.
  • néha az emberek valami szorosan kapcsolódó, de kissé eltérő dolgot keresnek – de köszönöm a visszhangot.
  • it @theRiley

Válasz

Színes git diff csővezeték esetén a less fájlba ez működik:

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

Válasz

Ezt a Önkényes parancs kimeneti színezővel teheti meg. Leginkább működik, de még nem jöttem rá, hogyan lehet egy olyan hibát kiküszöbölni, ahol a bemenetre számító felszólítások nem jelennek meg, és egyszerűen nem írja be az ismert szükséges bemenetet, és minden esetben folytathatja az Enter billentyűt.

~/.acoc.conf példa a git esetén:

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

. .amely a alias git="acoc git" -vel együtt szépen működik a .bash_profile -ban.

Megjegyzések

  • Megoszthatja a acoc konfigurációját?
  • Nvm, könnyű volt írni. 🙂 Hozzáadva a válaszhoz.

Válasz

Tudom, hogy a bejegyzés négy éves, de a táboromból senki sem válaszolt, a színvak. Ha tudsz megkülönböztetni a színeket, figyelmen kívül hagyni a bejegyzésemet.

A “git status” például fehér alapon fehér szöveget / fehér alapon fekete (olvasható), törléshez sötétszürke szöveget tesz ki (fekete háttér előtt olvashatatlan, de szemben olvasható fehér háttér) és közepesen szürke a dded (árpa olvasható fekete alapon, olvashatatlan fehér alapon). A terminálablakom hátterét fehérre / feketére váltottam, hogy elolvashassam az olvashatatlan szöveget. Az egyszerű megoldás ennél is több:

 git status | more 

Ez az egész szöveget olvashatóvá teszi a szokásos fehér vagy fekete háttér terminálablakban.

Megjegyzések

  • A konfigurációt úgy is megváltoztathatja, hogy alapértelmezés szerint mindent színtelenre állítson (color.ui = never).

Válasz

A git diff kimenetének színezéséhez hozzáadhat egy color.diff szakaszt ~ / .gitconfig. Például:

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

Itt 154 és 196 ANSI 256 színkód. További részletek: man git config.

Válasz

Nézze meg a https://github.com/dandavison/delta a (git) diff kimenet színes nyelvű szintaxis-kiemeléséhez és a diff-ben hozzáadott / eltávolított sorok színes kiemeléséhez .

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük