Mi editor está cambiando los finales de línea de mis archivos fuente. Cuando lo hago git diff
, veo la misma línea dos veces, una con -
y otra con +
, sin diferencia visible.
¿Cómo puedo git diff
mostrarme cuál fue realmente este cambio?
git
line-endings
git-diff
Stonky
fuente
fuente
git config diff.wsErrorHighlight all
Respuestas:
Primero, asegúrese de que está utilizando la salida en color (por ejemplo, con
git diff --color
) y que ha habilitado el resaltado de espacios en blanco con (por ejemplo)Sin embargo, es posible que esto no funcione en todos los casos, ya
git
que no parece resaltar los espacios en blanco finales para las líneas eliminadas . Para ver los espacios en blanco que eliminó, simplemente usepara poner el espacio en blanco en el lado 'agregado' de la comparación, donde se resalta.
Para obtener más detalles, consulte las respuestas a esta pregunta SO .
fuente
000000f0 2d 2d 7d 0a 2b 2b 7d 0a |--}.++}.|
el 7d es la llave '}'.Puede ver la diferencia de final de línea con el siguiente comando.
Luego se imprime "^ M" para la terminación CRLF (DOS), nada para la terminación LF (Unix).
Aparentemente, git diff está haciendo lo correcto, imprimiendo caracteres CR y LF para el final de CRLF. Pero debido a que la consola consume CR, no podemos verlo. Al usar cat -v, podemos hacerlo visible.
fuente
git diff > somediff && vi somediff
vim también muestra CRLF como ^ M. pero elcat -v
está limpio.cat
que no conocía. :-)Una forma de ver los cambios en los espacios en blanco es hacer una "diferencia de palabra" carácter por carácter con
Esto resalta todos los cambios de espacios en blanco en todas partes de las líneas . Los espacios en blanco eliminados se envuelven en
[-
y-]
y se agregan espacios en blanco en{+
y+}
.Alternativamente, como sugirió Alex
resalta todos los cambios de espacios en blanco al final de las líneas .
fuente
resalta las diferencias de espacios en blanco en las líneas cambiadas.
fuente
Una herramienta gráfica de diferencias le mostrará mejor el cambio, inténtelo
git difftool
.Use meld y configure las preferencias para mostrar espacios en blanco. (Editar -> Preferencias -> Mostrar espacios en blanco).
Otras herramientas gráficas probablemente tengan opciones similares: la respuesta + comentario de @ Cotton le dice cómo hacer esto con vimdiff.
fuente
git difftool --tool=meld doesn't
incluso lanza Meld. No sé si es porque hay un rebase en curso o no.