2012-03-14 9 views
64

E 'possibile git diff, salvare l'output in un file con la colorazione in qualche modo?uscita Git Diff su file preservare la colorazione

so come git diff> filename.rtf - che salva in un file, ma mi piacerebbe conservare la colorazione.

+2

È possibile convertire in html con il colore: http://stackoverflow.com/questions/2013091/coloured-diff-to-html –

+4

Notepad ++ metterà in evidenza il file se lo si salva con l'estensione .diff. – Monsignor

risposta

83

Prova:

git diff --color > foo.txt 

poi questione

cat foo.txt 
+2

@RoR, "incomprensibile" di una persona è il codice colore di un'altra persona (bene, il terminale). ;-) Ho provato e funziona; la colorazione è preservata se ho 'cat' il file dalla riga di comando. (In quale altro modo ti aspetteresti che i colori vengano conservati?) – mpontillo

+1

Beh, questo è quello che fa. Aggiunge codici colorazione bash.Se si cattura il file nella console mostra i colori. – ralphtheninja

+0

@Mike LOL Risposte quasi identiche :) – ralphtheninja

6

file colori Vim contenenti git diff di splendidamente.

git diff

15

Aprire il file di output in diff SublimeText2, mostra i colori del diff.

+1

Potrebbe essere necessario cambiare sintassi a diff per abilitare l'evidenziazione corretta nel caso in cui il file diff abbia estensione diversa da * .diff. (via Visualizza -> Sintassi -> Diff). –

+0

^O dall'opzione data in basso a destra. – akki

+0

Non evidenziamo 'diff.txt' per me, anche con" Diff "rilevato automaticamente nell'angolo in basso a destra. – Nakilon

5

di espandere @ risposta di Gabe.

È possibile reindirizzare l'output a un ansi in html script bash convertitore e diretto che in uscita in un file HTML:

git diff --color|./ansi2html.sh > changes.html 

naturalmente HTML possono essere visualizzati da qualsiasi browser in modo di uscita può essere letto in Windows etc .

ansi2html codice è qui: http://www.pixelbeat.org/scripts/ansi2html.sh

+0

non funziona Ottengo: gawk: cmd. line: 25: (FILENAME = - FNR = 1) fatale: tenta di usare array 'a (from span) 'in un contesto scalare – Tim

+0

Ottieni Homebrew ed esegui' brew install gawk'. Avrai anche bisogno di 'brew install gnu-sed'. –

6

Salvare il file con estensione .diff e aprirlo in Notepad ++ o Vim o SublimeText.

git diff > 20150203_someChanges.diff 

Grazie @Monsingor

+0

Penso che hai dimenticato '>' nel mezzo, questo non funziona – GoGoris

1
git remote add -f b path/to/repo_b.git 
git remote update 
git diff master remotes/b/master > foo.txt 

Differenze estratti in '* .txt' i file possono essere facilmente letti da SublimeText2 senza la necessità di impostare (tramite Visualizza -> Sintassi -> Diff).

+0

'git remote rm remotes/b/master' per resettare il ramo al suo stato originale. – Abhijeet

3

Ho trovato una risposta qui: Color output of specific git command.

È possibile passare -c color.ui=always a qualsiasi comando git e continuerà a colorare sul reindirizzamento. Per esempio: git -c color.ui=always status > file

0

Si potrebbe caricare GitHub e fornire un collegamento al relativo commit.

0

per consentire a qualsiasi terminale di testo colorato ... git diff o qualsiasi altro ... per essere visualizzabile da un browser

sudo apt-get install aha # https://github.com/theZiz/aha 

installare aha utilizzando sopra quindi emettere

git diff --color mysourcefile | aha > ~/cool_colorized.html 

firefox ~/cool_colorized.html