2012-10-02 7 views
54

Nel fare il mio preferito vista git log Ho creato questo alias:Come emulare diversi colori git log di --decorate per sportello tipo

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

Questo crea un output come:

Git log result with own coloring

Quello che mi manca è la diversa colorazione dei tipi di diramazione come in log --oneline --decorate --graph.

Git log result with --decorate(=short)

Il --decorate (che utilizza = breve di default) mostra i diversi rami riconosciuti un altro colore. I tipi di diramazione (HEAD, origin/master, origin/HEAD, master) sono di colore ciano, rosso, rosso, verde. I miei tuttavia sono incolori; colorato solo con il giallo dell'intera parte dei rami.

C'è un modo per assegnare colori diversi alle diverse tipo delle filiali con un proprio alias?

risposta

80

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

A partire dal Git 1.8.3 (24 maggio 2013), è possibile utilizzare per decorare %C(auto) %d nella stringa di formato di git log.

Dal 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

Fantastico !!! Ho cercato questo per un paio d'ore, grazie !!! Per Google, aggiungendo alcune parole chiave:% d, nomi di riferimento, --oneline – astgtciv

+2

Grazie per questo. Una gemma molto ben nascosta! – Munter

+0

Sfortunatamente, sono bloccato con la versione 1.7.12.4 :(così% d e% C (auto) non funzioneranno, mentre i colori% ad% an% h ... etc possono essere definiti individualmente, sto avendo problemi con il colore per i nomi dei rami Qualche idea in cui è possibile trovare il formato stringa per * oneline * – Radu

1

Non credo sia possibile. Guardando attraverso la pagina man git-log(1), l'unico formato rilevante per --pretty sembra essere %d, che ti dà tutti i nomi di riferimento. Poiché non ci sono opzioni che distinguono il tipo di riferimento, non è possibile assegnare a ciascun tipo un colore diverso.

Vedere anche this question.

+1

Questa risposta non è più vero. A partire da git 1.8.3 (24 maggio 2013), è possibile utilizzare% C (auto) per decorare% d nella stringa di formato di log git. –