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.
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.
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.
--patience
bandera? ¿Conoce un diff (1) que pueda hacer eso?Respuestas:
git
El diff es más funcional que el Unix estándardiff
. 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-words
fuera 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
:No importa cuál es rastreado por git y cuál no, uno o ambos pueden no ser rastreados, por ejemplo:
El color no se puede mostrar aquí, así que separé los cambios con una tubería en el ejemplo.
fuente
.bashrc
archivo (o lo que sea que use):alias diff="git diff --no-index"
diff -u
dará una salida de contexto unificada similar a la diferencia de git.
fuente
git diff --word-diff
).Simplemente use el comando diff:
fuente