Cómo hacer que git diff --ignore-space-change the default


110

Probablemente podría configurar un alias, pero parece que debería poder configurar esto como una opción en el archivo de configuración, solo que no veo de todos modos para hacerlo.

Solo quiero el --ignore-space-changecuando estoy haciendo diff, no cuando estoy aplicando o cualquier otra cosa. Estoy tratando de hacer que la diferencia sea más fácil de entender al no abarrotarla con líneas +/- extrañas que no tienen cambios reales.


2
¿Le importaría cambiar la respuesta correcta? :)
igorsantos07

1
ahora hay un atajo git diff -wque es un atajo para --ignore-all-space: Ignorar los espacios en blanco al comparar líneas. Esto ignora las diferencias incluso si una línea tiene espacios en blanco donde la otra línea no tiene ninguno.
João Pimentel Ferreira

Respuestas:


22

Según el manual de Git Config, no existe tal opción. Tu única opción es crear un alias.

http://git-scm.com/docs/git-config


Estaba pensando eso al leer esa página también. Tenía la esperanza de que alguien conociera un camino que no estaba documentado ... bueno.
boatcoder

@Dogbert: tengo el mismo problema, solo cuando realizo git add -p <file_name>, ¿alguna sugerencia?
Guy Avraham

@ JoãoPimentelFerreira Eso no lo convierte en el predeterminado.
DylanYoung


99

Puede usar git alias o bash alias si está usando un sistema operativo disponible en shell.

  1. git alias : Ejecute este comando para agregar alias:

    git config --global alias.dfw 'diff --ignore-space-change'

    --ignore-space-change can be abbreviated to -w
    para aplicar el alias usando: git dfw

  2. bash alias : ejecute este comando para agregar bash alias:

    echo "alias gitdfw='git diff --ignore-space-change'">>~/.profile

    Abra una nueva terminal y podrá ejecutar directamente gitdfwpara lograr lo mismo.


8
Esta debería ser la respuesta aceptada, porque en realidad es útil con ejemplos en lugar de "ir a esta URL".
DrStrangepork

7
Según la documentación actual de git , -bes lo mismo que --ignore-space-change. Se alinea con el diffcomando de Linux , donde -wsignifica --ignore-all-space. Es una distinción importante porque, por ejemplo, el texto a b cse considera igual que abccon la -wopción; en el código, es poco probable que esto sea lo que desea, por lo que -bes una mejor opción.
Richard Wiseman


10

EDITAR: SOY UN TONTO Y NO LEÍ TU SOLICITUD A MEDIDA

Una forma de lograr algo similar, desde man git-config:

 apply.whitespace
       Tells git apply how to handle whitespaces, in the same way
       as the --whitespace option. See git-apply(1).

Así que abre tu ~/.gitconfigo ./.git/config/y agrega

[apply]
   whitespace = nowarn

Es posible que tampoco le permita cometer algo que solo cambie los espacios en blanco, pero estoy seguro de que puede anular eso con algunas banderas.


1
El OP estaba buscando una forma de establecer el valor predeterminado al hacer un git diff. Esto lo hace apply.
denishaskin

10

Antigua pregunta (2011), pero ahora hay un atajo git diff -wque significa --ignore-all-space

Ignore los espacios en blanco al comparar líneas. Esto ignora las diferencias incluso si una línea tiene espacios en blanco donde la otra línea no tiene ninguno.


2

Sería genial si esto fuera posible con una opción. pero un alias funciona bastante bien. aquí están las líneas relevantes de mi .gitconfig:

[diff]
    tool = mydiff
[difftool "mydiff"]
    cmd = "colordiff -NuBbwi \"$LOCAL\" \"$REMOTE\" | less -R"
[difftool]
    prompt = false
[alias]
    dt = difftool

esto supone el uso de colordiff, que recomiendo, dándote una copia casi exacta de lo que mostraría git diff , con dos diferencias:

  1. la línea --- en colordiff tiene un color diferente que la misma línea en git diff (problema muy menor)
  2. cada archivo se muestra uno a la vez (problema molesto: ¿alguien sabe una solución?)

aquí está mi / etc / colordiffrc:

plain=off
newtext=green
oldtext=red
diffstuff=cyan
cvsstuff=red

Mac OS X 10.9.2, git versión 1.8.5.2 (Apple Git-48)

(el colordiff se obtuvo de brew)

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.