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áadtambranch = 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
(amelyreauto
mutat) versusalways
? 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. ALESS=-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 aless
továbbítja a színes menekülési karaktereket a terminálhoz aless -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 .