Estoy ejecutando git-diff en un archivo, pero el cambio está al final de una larga línea.
Si uso las teclas del cursor para moverme hacia la derecha, pierde la codificación de colores, y peor aún, las líneas no se alinean, lo que dificulta el seguimiento del cambio.
¿Hay alguna manera de evitar ese problema o simplemente hacer que las líneas se envuelvan?
Estoy ejecutando Git 1.5.5 a través de mingw32.

git diff --color-words | foldfoldpero elimina el color. Como especificas--color-words, supongo que lograste pasar colores afold. ¿Cómo?Respuestas:
La visualización de la salida de
git diffes manejada por cualquier localizador que esté utilizando.Comúnmente, bajo Linux,
lessse usaría.Puede decirle a git que use un buscapersonas diferente configurando la
GIT_PAGERvariable de entorno. Si no le importa la paginación (por ejemplo, su terminal le permite desplazarse hacia atrás), puede intentar configurar explícitamenteGIT_PAGERque se vacíe para detenerlo con un buscapersonas. Bajo Linux:Sin un buscapersonas, las líneas se ajustarán.
Si su terminal no admite salida de color, también puede desactivarlo utilizando el
--no-colorargumento o colocando una entrada en la sección de color de su archivo de configuración de git.fuente
O si usa menos como buscapersonas predeterminado, simplemente escriba
-Smientras visualiza la diferencia para volver a habilitar el ajuste en menos.fuente
--word-diffpara ver un resaltado codificado por colores de palabras cambiadas--word-diffparte merece tener su propia respuesta sobre esto, ya que me parece que estoy haciendo mucho para ayudar a resolver el problema subyacente: descubrir qué ha cambiado en una larga fila. Entonces, lo hice uno: stackoverflow.com/a/19253759/313756-Scon una S mayúscula, no-s. Menos muestra un mensaje "Doblar líneas largas (presione RETORNO)" en la parte inferior después de escribir-S, y luego presionar Volver habilita el ajuste.También puede usar
git configpara configurar el buscapersonas para envolver.Establece la configuración del localizador para el proyecto actual.
Establece el localizador globalmente para todos los proyectos.
fuente
git config --global core.pager "less -r"man less,-rno dice nada sobre envolver.Con todo el crédito a Josh Diehl en un comentario a esta respuesta , sin embargo, siento que esta debería ser una respuesta en sí misma, por lo que lo agrego:
Una forma de tratar de ver las diferencias en las líneas largas es usar un diff orientado a palabras. Esto se puede hacer con:
En este caso, obtendrá una salida diff significativamente diferente, que le muestra específicamente lo que ha cambiado dentro de una línea.
Por ejemplo, en lugar de obtener algo como esto:
Puede obtener algo como esto:
O, con la coloración, en lugar de esto:
Puede obtener esto:
Ahora, si está comparando una línea realmente larga, aún puede tener problemas con la situación del localizador que describió originalmente y que se ha abordado, aparentemente con satisfacción, en otras respuestas. Con suerte, esto le brinda una nueva herramienta, sin embargo, para identificar más fácilmente lo que ha cambiado en la línea.
fuente
--word-diff:color,plain, yporcelain. Además, se puede cambiar la expresión regular para los límites de palabras con--word-diff-regex. El valor predeterminado parece ser\S+. ( v2.1.1 )--color-wordsparece ser una forma abreviada--word-diff=color, lo cual es bueno cuando solo estás viendo el diff, no compartiéndolo.--word-diff=porcelainmás que--word-diffporqueporcelainalineará los cambios en líneas separadas, mientras que--word-diffcoloca los cambios en línea. Las líneas separadas le permiten ver las diferencias más fácilmente cuando las diferencias son sutiles.Para usar menos como localizador y hacer que el ajuste de línea sea permanente, simplemente puede habilitar la opción de plegar líneas largas:
De esta manera, no tiene que escribirlo mientras usa menos.
Salud
fuente
git config --global core.pager 'less -SSolo busqué en Google este.
GIT_PAGER='less -r'funciona para mifuente
less -R(En realidad, yo usoless -eiFRSX, que también resuelve los problemas de color yMac OSX: Ninguna de las otras respuestas, excepto la '-S' de alguien45 mientras menos se está ejecutando, funcionó para mí. Se necesitó lo siguiente para hacer que el ajuste de texto sea persistente:
fuente
-+$LESShaciendo el parámetro? A menos que git lo defina, mi variable de entorno MENOS ni siquiera está configurada.$LESSse establece en algún valor (p. Ej. Por a.logino a.profileo algo), y esa opción, creo, solo agrega los valores predeterminados y luego los agrega-FRX.$LESSno está definido.Desde Git 1.5.3 ( septiembre de 2007 )
Una
--no-pageropción ha estado disponible.¿Cómo evito que git diff use un buscapersonas?
Ejemplo
A partir de v2.1, el ajuste predeterminado es
Notas de la versión de Git v2.1
fuente
Ocho años después, encuentro una respuesta superior, de /superuser/777617/line-wrapping-less-in-os-x-specífico-for-use-with-git-diff :
Ahora canaliza el git diff a través del pliegue, primero, luego a menos: envuelto, menos altura de página es correcta, mantenga el resaltado de sintaxis.
fuente
Cuando usa "git diff" y muestra varias páginas (ve ":" al final de la página) en este caso puede escribir "-S" y presionar enter (S debe ser mayúscula). alternará las líneas largas y plegadas.
fuente
Nadie señaló esto hasta ahora. Es bastante simple de recordar y no es necesario realizar ninguna configuración adicional en la configuración de git
fuente
git diff --color | less -FRpara pequeños cambios cuando no es necesario desplazarseSimplemente podría canalizar la salida de git diff a más:
fuente
No es una solución perfecta, pero
gitkygit-guipuede mostrar tanto esta información, y tienen barras de desplazamiento.fuente
enumere la configuración actual / predeterminada:
luego actualice y omita el -S como:
the -S: hace que las líneas más largas que el ancho de la pantalla se corten en lugar de doblarse.
fuente
Cuando tengo problemas, a menudo recurro a DiffMerge. Excelente herramienta de diferencias que tiene resaltado de diferencias en línea. Además, en las últimas versiones agregaron un modo para tener un modo horizontal.
Sin embargo, no he podido configurar git para usarlo. Así que tengo que buscar para obtener primero las dos versiones del archivo.
fuente