Er det en måte å farge utdata for git (eller en hvilken som helst kommando)?

Tenk:

 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  

Og

 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 #  

Utgangen ser den samme ut, men informasjonen er helt annerledes: filen har gått fra ikke-iscenesatt til iscenesatt for forpliktelse.

Er det en måte å fargelegge utdataene? For eksempel er filer som ikke er iscenesatt, røde, iscenesatte er grønne?

Eller til og med Changes not staged for commit: til rødt og # Changes to be committed: til grønt?

Jobber du i Ubuntu.

EDIT: Googling fant dette svaret som fungerer bra: git config --global --add color.ui true.

Er det imidlertid noen mer generell løsning for å legge til farger i en kommandoutgang?

Kommentarer

  • Vil du ha noe som fargelegger alle kommandoutganger? Hvordan ville det vite hvilke deler som skal fargelegges?
  • Jeg antar at hvis det var en måte å konfigurere det ved hjelp av regex: Hver farge kan ha en start-regex. Og det kan være en standard fargeregistrering for å slå av alle farger. Og hvis teksten » foo » vises, vis den i en bestemt farge …

Svar

Du kan opprette en seksjon [color] i ~/.gitconfig med f.eks følgende innhold

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

Du kan også finjustere hva du vil ha farget på hvilken måte, f.eks.

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

Jeg håper dette kommer i gang. Og selvfølgelig trenger du en terminal som støtter farger.

Kommentarer

  • Jeg tror det kan være verdt å sette git config –global color.ui auto (@ Evgeny ‘ sitt svar) øverst på deg … Jeg tror at ‘ sannsynligvis vil være det folk flest er ser etter. Jeg ‘ har stemt på begge deler … Jeg ‘ Jeg sier bare, for internettets skyld når det kommer hit, tror jeg mange mennesker vil bare ha den enkle linjeren. Desto bedre hvis de får det, pluss din ekstra godhet.
  • Dette fungerte perfekt for meg – i [color "status"] delen la jeg til branch = yellow.
  • du kan legge til [farge] -seksjon i prosjektet ‘ s .git / config-fil også
  • Og du kan bare angi en konfigurasjonsvariabel for en enkelt påkalling av en git-kommando: stackoverflow.com/a/18304605/134044

Svar

Du vil sannsynligvis bruke

git config --global color.ui auto 

auto delen sier at git bare vil prøve å bruke farge på terminaler som støtter den, og du vil ikke få ANSI-sekvenser hvis du for eksempel omdirigerer utdata fra git-kommandoer til en fil. Å sette det til true er det samme som auto, og dette er også standard siden Git 1.8.4.

color.ui er en metakonfigurasjon som inkluderer alle de forskjellige color.* -konfigurasjonene som er tilgjengelige med git-kommandoer.

Dette forklares inngående i git help config.

Kommentarer

  • Kan du forklare forskjellen mellom color.ui true (som auto peker på) versus always? Jeg leste dokumentene , men jeg skjønner fortsatt ikke forskjellen.
  • @chharvey color.ui = auto + git diff | less – ingen farger, color.ui = always + git diff | less – farget utgang. LESS=-R er underforstått.

Svar

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

Kommentarer

  • FYI, bare dette fungerte for git versjon 1.5.2.1, andre svar gjorde ikke ‘ t.

Svar

Det aksepterte svaret gir den vanligste løsningen. Hvis du av en eller annen grunn ikke trenger å endre konfigurasjonen permanent, som løsningen gjør, kan du overstyre konfigurasjonen for en enkelt git-kommando:

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

For eksempel :

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

Testet: støttet på git 2.4.6, ikke støttet på git 1.7.1.

Kommentarer

  • For alle andre som prøver å få farger når de går til less som jeg nettopp var, kan du lage less passerer fartegntegnene til terminalen via less -R.
  • Når ble denne funksjonen lagt til?

Svar

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 

Svar

eller slå av / det meste av fargelegging av via:

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 

Kommentarer

  • OP var ikke ‘ t ønsker å slå av farger, snarere å slå farger . I OP uttalte han hvordan man skal gjøre for git og ønsker en måte å gjøre det på i en mer global forstand. Hvis du vet om en slik metode, kan du redigere svaret ditt for å forklare det.
  • Noen ganger ser folk etter noe nært beslektet, men litt annerledes – men takk for nedstemningen.
  • Jeg likte it @theRiley

Svar

For en farget git diff rør inn i less, dette fungerer:

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

Svar

Du kan gjøre dette med Vilkårlig kommandoutgangsfarger . Det fungerer for det meste, men jeg har ikke funnet ut hvordan jeg kan omgå en feil der ledetekstene som forventer inngang ikke vises, og du ikke bare kan skrive den kjente inntastingen du trenger og trykk enter for å fortsette i alle tilfeller.

Eksempel på ~/.acoc.conf for git:

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

. .som fungerer fint sammen med alias git="acoc git" i .bash_profile.

Kommentarer

  • Kan du dele konfigurasjonen din for acoc?
  • Nvm, det var lett å skrive. 🙂 Lagt til i svaret.

Svar

Jeg vet at innlegget er fire år gammelt, men ingen svarte fra leiren min, fargeblind. skille farger, ignorere innlegget mitt.

«git status» legger for eksempel ut tekst som er hvit på bakgrunn / svart på hvit bakgrunn (lesbar), mørk grå for slettet (uleselig mot svart bakgrunn men lesbar mot en hvit bakgrunn) og middels grå for en dded (bygg leselig på svart bakgrunn, uleselig på hvit bakgrunn). Jeg pleide å veksle bakgrunnen til terminalvinduet til / fra hvitt / svart, slik at jeg kunne lese den uleselige teksten. En enkel løsning er mer:

 git status | more 

Dette gjør all teksten lesbar i et standard terminalvindu i hvit eller svart bakgrunn.

Kommentarer

  • Du kan også endre konfigurasjonen for å sette alt til ingen farge som standard (color.ui = never).

Svar

For å fargelegge utdata fra git diff kan du legge til en farge. diff-seksjon til ~ / .gitconfig. For eksempel:

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

Her er 154 og 196 ANSI 256-fargekoder. For mer informasjon, se man git config.

Svar

Ta en titt på https://github.com/dandavison/delta for syntaks-utheving av farget språk for (git) diff-utdata, og farget utheving av tilføyde / fjernede linjer i diff .

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *