2012-10-02 7 views
54

Dokonując mojego ulubionego widoku dziennika git Utworzyłem ten alias:Jak naśladować git dziennika --decorate w różnych kolorach na oddział typu

graph = log --pretty=format:'%Cgreen%ad%Creset %C(yellow)%h%Creset%C(yellow)%d%Creset %s %C(cyan)[%an]%Creset %Cgreen(%ar)%Creset' --date=short --graph

Stwarza to wyjście jak:

Git log result with own coloring

To, czego mi brakuje, to różna kolorystyka rodzajów gałęzi, takich jak log --oneline --decorate --graph.

Git log result with --decorate(=short)

--decorate (który używa = krótki domyślnie) daje różnych rozpoznanych branże inny kolor. Typy oddziałów (HEAD, origin/master, origin/HEAD, master) mają kolor cyjan, czerwony, czerwony, zielony. Moje są jednak bezbarwne; zabarwione tylko żółtą częścią całej gałęzi.

Czy istnieje sposób, aby dać różne kolory do różnego rodzajuoddziałów z własnym pseudonimem?

Odpowiedz

80

Per https://stackoverflow.com/a/16844346/55948

Od git 1.8.3 (24 maja 2013), można wykorzystać %C(auto) ozdobić %d w ciągu formatu git log.

Z release notes:

* "git log --format" specifier learned %C(auto) token that tells Git 
    to use color when interpolating %d (decoration), %h (short commit 
    object name), etc. for terminal output.) 
+3

Awesome !!! Szukałem tego przez kilka godzin, dzięki! W przypadku google dodanie niektórych słów kluczowych:% d, nazwy referencji, --oneline – astgtciv

+2

Dziękuję za to. Bardzo dobrze ukryty klejnot! – Munter

+0

Niestety, utknąłem z wersją 1.7.12.4 :(więc% d i% C (auto) nie będą działać, podczas gdy% ad% an% h ... etc kolory mogą być definiowane indywidualnie, mam kłopoty z kolorem dla nazw oddziałów Wszelkie pomysły, w których można znaleźć format ciągu dla * oneline * – Radu

1

Nie wierzę, że to możliwe. Przeglądając stronę man git-log(1), jedynym istotnym formatem dla --pretty wydaje się być %d, który podaje wszystkie nazwy ref. Ponieważ nie ma żadnych opcji, które odróżniają typ odniesienia, nie można nadać każdemu typowi innego koloru.

Zobacz także this question.

+1

Ta odpowiedź nie jest już prawdą. Począwszy od wersji git 1.8.3 (24 maja 2013 r.) Można użyć% C (auto) do dekoracji% d w ciągu znaków w logach git. –