Cómo comparar dos archivos que no están en repositorio usando git


Respuestas:


214

gitEl diff es más funcional que el Unix estándar diff. A menudo quiero hacer esto y, dado que esta pregunta ocupa un lugar destacado en Google, quiero que aparezca esta respuesta.

Esta pregunta: ¿Cómo usarlo git diff --color-wordsfuera de un repositorio de Git?

Muestra cómo usar git para diferenciar archivos donde al menos uno de ellos no está en el repositorio usando --no-index:

git diff --no-index file1.txt file2.txt

No importa cuál es rastreado por git y cuál no, uno o ambos pueden no ser rastreados, por ejemplo:

$ date > x
$ sleep 2
$ date > y
$ git diff --color-words --no-index x y
diff --git a/x b/y
index 6b10c7c..70f036c 100644
--- a/x
+++ a/y
@@ -1 + 1 @@
Wed Jun 10 10:57:45|10:57:47 EDT 2013

El color no se puede mostrar aquí, así que separé los cambios con una tubería en el ejemplo.


14
Si desea que este comportamiento sea predeterminado, puede agregar un alias a su .bashrcarchivo (o lo que sea que use):alias diff="git diff --no-index"
counterbeing

1
FYI: En Git para Windows hubo un error (# 2123) que "--no-index" no fue respetado. Esto se solucionó en Git para Windows v2.21.0 (26 de febrero de 2019).
StackzOfZtuff

¿Qué significa la fila "índice 6b10c7c..70f036c 100644"? Estoy comparando 2 binarios, difieren, pero esa es la única fila con diferencia ...
Lukas Salich

hola @LukasSalich, parece que el formato de línea podría estar documentado por git (por ejemplo: git-scm.com/docs/diff-format ) La diferencia de git no intenta diferenciar binarios afaik, así que supongo que esa línea significa que difieren , los dos SHA donde se identificó un cambio y luego los permisos del archivo.
Kyle Burton

3

diff -u

dará una salida de contexto unificada similar a la diferencia de git.


1
Sin embargo, no sirve para colorear ni utilizar un buscapersonas.
Xiong Chiamiov

Tampoco permite una palabra agradable diff ( git diff --word-diff).
Stefan van den Akker

0

Simplemente use el comando diff:

diff file1.ext file2.ext

2
Hmkay, intenté esto pero en mi opinión, la salida fue simplemente una tontería ... Tal vez me equivoqué ...
Cedric Reichenbach

puede ejecutar alguna herramienta GUI que proporcione una mejor vista, como gvimdiff, kompare o similar
Eugene Sajine
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.