En cuanto al formato de código, soy un poco purista :). A menudo elimino espacios en blanco innecesarios (líneas con solo ws, ws al final de las líneas, etc.). Incluso he configurado vim para mostrar ese tipo de líneas de color rojo.
Mi problema es que usando git-diff a menudo veo algo como esto:
- else{
+ else{
Incluso si tengo color de git-diff no puedo ver la diferencia (en esa situación particular eliminé 1 ws al final de la línea). ¿Hay alguna manera de decirle a git-diff que muestre que estaba coloreado de rojo? (por ejemplo, aquellos que coinciden con / \ s + $ / regexp).
git
colors
diff
whitespace
radarek
fuente
fuente
Respuestas:
Es posible que deba establecer la configuración de configuración color.diff.whitespace, por ejemplo, con:
(Supongo que ya tiene
color.diff
ocolor.ui
configuróauto
ya que dice que ve parches de colores degit diff
todos modos).Si desea ajustar el tipo de errores de espacios en blanco que están resaltados en rojo, puede cambiar
core.whitespace
, peroblank-at-eol
está habilitado de forma predeterminada, por lo que probablemente no necesite cambiar eso para el ejemplo que menciona.Una posible fuente de confusión es que en la salida de
git diff
, los errores de espacios en blanco solo se resaltan en las líneas que se introducen, no en las que se eliminan. ( Actualización: como señala Paul Whittaker en su respuesta , que debería votar arriba :), puede ver esto invirtiendo el sentido de la diferencia congit diff -R
).Puede encontrar más documentación sobre estas opciones de configuración en la página del manual de configuración de git
Si no desea usar
-R
kludge, puede usar la opción de resaltado de error de espacio en blanco en la página del manual de diferencias .git diff --ws-error-highlight=new,old <file>
o
git diff --ws-error-highlight=all <file>
No conozco una manera de activar esto permanentemente y almacenarlo en configuración aparte de usar un alias:
git config alias.df 'diff --ws-error-highlight=all'
Ahora puedes usar:
git df <file>
Para ver los cambios en rojo.
Tenga en cuenta que con Git 2.11 (Q4 2016) , este alias podría reemplazarse con:
Ver doc
git diff
y engit config
.fuente
git diff -R
git config diff.wsErrorHighlight all
. Se usagit config --global [...]
para hacer los cambios globales (es decir, que afectan a todos los repositorios).Use
git diff -R
para convertir las líneas eliminadas en líneas agregadas. Luego se resaltará el espacio en blanco al final.(Esto supone que ya tiene activada la iluminación de espacios en blanco, según la configuración de color de la respuesta de Mark. El crédito para este método va a la publicación de Junio en http://git.661346.n2.nabble.com/Highlighting-whitespace-on-removal- with-git-diff-td5653205.html .)
Por ejemplo, al convertir un archivo de terminaciones de línea de DOS a Unix,
git diff -R
me muestra claramente los^M
caracteres (dis) que aparecen al final de las líneas. Sin-R
(y también sin-w
etc.) muestra que todo el archivo ha cambiado, pero no muestra cómo.fuente
git diff | cat -A | less -S
si está desesperado, pero además de los retornos de carro,cat
también mostrará cualquier color resaltando los códigos de escape literalmente.cat -A
no es portátil. En el gato BSD, no existe tal opción. Por favor, usecat -vet
en su lugar.Uso
git diff --color | less -R
. Esto-R
hace que los códigos de control de color sean amigables para los humanos.Entonces puede usar
less
la búsqueda de expresiones regulares, por ejemplofuente
vim
, por cierto.less -R
simplemente me facilitó ells --color
pasoless
.Mi versión de
git diff
ya parece hacer esto: tengo git 1.7.4.1 y lo he configuradocolor.ui = auto
.fuente