Czy istnieje sposób na kolorowe wyjście dla git (lub dowolnego polecenia)?
Rozważać:
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
#
Dane wyjściowe wyglądają tak samo, ale informacje są zupełnie inne: plik został zmieniony ze sceny niestacjonarnej na etapową w celu zatwierdzenia.
Czy istnieje sposób pokolorowania wydruku? Na przykład pliki, które nie są etapowane, są czerwone, a etapowe zielone?
A może nawet Changes not staged for commit:
czerwony i # Changes to be committed:
zielony?
Praca w Ubuntu.
EDIT: googlowania uznało tę odpowiedź, która działa świetnie: git config --global --add color.ui true
.
Czy istnieje jednak bardziej ogólne rozwiązanie dodawania koloru do wyniku polecenia?
Odpowiedzi:
Możesz utworzyć
[color]
w swoim dziale~/.gitconfig
np. Następującą treśćMożesz także dokładnie kontrolować, w jaki sposób chcesz pokolorować, w jaki sposób, np
Mam nadzieję, że dzięki temu zaczniesz. I oczywiście potrzebujesz terminalu obsługującego kolor.
źródło
[color "status"]
sekcji, którą dodałembranch = yellow
.Prawdopodobnie chcesz użyć
auto
Część mówi, że będzie git tylko próbować i używać kolorów na terminalach, które go obsługują, a nie dostaniesz sekwencje ANSI jeśli przekierować dane wyjściowe komendy git do pliku np. Ustawienie gotrue
jest takie samo jakauto
i jest to również ustawienie domyślne od wersji Git 1.8.4.color.ui
Jest meta konfiguracja, która obejmuje wszystkie różnecolor.*
konfiguracje dostępnych za pomocą poleceń git.Wyjaśniono to szczegółowo w
git help config
.źródło
true
(któryauto
wskazuje) aalways
? Czytam dokumenty, ale wciąż nie rozumiem różnicy.źródło
Przyjęta odpowiedź daje najczęstsze rozwiązanie. Jeśli z jakiegokolwiek powodu nie musisz trwale zmieniać konfiguracji, co robi to rozwiązanie, możesz zastąpić konfigurację dla pojedynczego polecenia git:
Na przykład:
Testowane: obsługiwane na git 2.4.6, nie obsługiwane na git 1.7.1.
źródło
less
takiego, jakim właśnie byłem, możeszless
przekazać znaki zmiany koloru do terminala przezless -R
.źródło
Możesz to zrobić za pomocą Colourer Arbitrary Command Output . W większości działa, ale nie wymyśliłem, jak obejść błąd, w którym monity oczekujące danych wejściowych nie są wyświetlane i nie można po prostu wpisać znanego wymaganego wejścia i nacisnąć klawisz Enter, aby kontynuować w każdym przypadku.
Przykład
~/.acoc.conf
dlagit
:..which działa ładnie wraz z
alias git="acoc git"
in.bash_profile
.źródło
acoc
?W przypadku kolorowego
git diff
potokuless
działa to:źródło
Wiem, że post ma cztery lata, ale nikt nie odpowiedział z mojego obozu, ślepy na kolory. Jeśli potrafisz rozróżnić kolory, zignoruj mój post.
Na przykład „status git” powoduje wyświetlenie tekstu, który jest biały na tle / czarny na białym tle (czytelny), ciemnoszary dla usuniętego (nieczytelny na czarnym tle, ale czytelny na białym tle) i średni szary dla dodanego (jęczmień czytelny na czarnym tle tło, nieczytelne na białym tle). Kiedyś przełączałem tło okna terminala na / z białego / czarnego, aby móc odczytać nieczytelny tekst. Proste rozwiązanie to więcej:
Dzięki temu cały tekst jest czytelny na standardowym białym lub czarnym tle okna terminala.
źródło
color.ui = never
).lub wyłącz wszystkie / większość kolorowania poprzez:
źródło
git
i chce, aby to zrobić w bardziej globalnym sensie. Jeśli znasz taką metodę, edytuj swoją odpowiedź, aby to wyjaśnić.