Salida de Git diff para conservar el color del archivo


Respuestas:


146

Tratar:

git diff --color > foo.txt

Luego, problema posterior:

cat foo.txt

O:

less -R foo.txt

2
@RoR, el "galimatías" de una persona son los códigos de color de otra persona (bueno, terminal). ;-) Lo probé y funciona; el color se conserva si catel archivo de la línea de comandos. (¿De qué otra manera esperaría que se conservaran los colores?)
mpontillo

1
Bueno, eso es lo que hace. Agrega códigos de coloración de bash. Si captura el archivo en la consola, muestra los colores.
ralphtheninja

1
@RoR Tendría que poner algo en el medio para convertir los códigos de color de bash al formato rtf.
ralphtheninja

3
Notepad ++ puede resaltar archivos diff. (Las extensiones * .diff se resaltan automáticamente; de ​​lo contrario, cambian Language --> D --> Diff). Si no le gustan los colores predeterminados, cámbielos Settings --> Style Configurator --> Diff. Para copiar y pegar con colores, puede utilizar un complemento (por ejemplo NppExport) que permite exportar / copiar en RTF o HTML.
Nikita G.

3
git diff AB> foo.diff (muchos editores abrirán el archivo con los colores porque el archivo es un archivo .diff)
zeusstl

34

Guarde el archivo con una extensión .diff y ábralo en Notepad ++ o Vim o SublimeText.

git diff > 20150203_someChanges.diff

Gracias @Monsingor


Creo que olvidaste '>' en el medio, esto no funciona
GoGoris

20

Abra el archivo de diferencias de salida en Sublime Text 2 . Muestra los colores diferenciales.


1
Es posible que deba cambiar la sintaxis a diff para habilitar el resaltado adecuado en caso de que el archivo diff tenga una extensión diferente a * .diff. (a través de Ver -> Sintaxis -> Diferenciar).
Nikita G.

No resalta diff.txtpara mí, incluso con "Diff" detectado automáticamente en la esquina inferior derecha.
Nakilon

11

Para ampliar la respuesta de @ Gabe.

Puede canalizar la salida a un script bash del convertidor de ansi a html y dirigir esa salida a un archivo html:

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

por supuesto, HTML puede ser visto por cualquier navegador, por lo que la salida se puede leer en Windows, etc.

El código ansi2html está aquí: http://www.pixelbeat.org/scripts/ansi2html.sh


no funciona, obtengo: gawk: cmd. línea: 25: (FILENAME = - FNR = 1) fatal: intento de usar la matriz `a (from span) 'en un contexto escalar
Tim

2
Obtén Homebrew y corre brew install gawk. También necesitarás brew install gnu-sed.
Geoffrey Booth

exactamente lo que quiero, genial!
Keith

La biblioteca de python ansi2html lo hizo por mí github.com/ralphbean/ansi2html . pip instalable y funciona exactamente como el script bash en esta respuesta. No olvide reemplazar "./ansi2html.sh" por "ansi2html".
Nagasaki45



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

SublimeText2 puede leer fácilmente las diferencias extraídas en archivos '* .txt' sin necesidad de configurarlas (a través de Ver -> Sintaxis -> Diferenciar).


git remote rm remotes/b/masterpara restablecer la rama a su estado original.
Abhijeet

1

para permitir que cualquier texto de terminal coloreado ... git diff o cualquier otro ... sea visible desde un navegador

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

instalar ahausando arriba y luego emitir

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

firefox  ~/cool_colorized.html

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.