2011-09-05 21 views
87

Probablemente podría configurar un alias, pero parece que debería ser capaz de configurar esto como una opción en el archivo de configuración, solo que no veo de todos modos para hacerlo.Cómo hacer git diff --ignore-space-change el predeterminado

Solo quiero el --ignore-space-change cuando estoy haciendo diff, no cuando estoy haciendo la aplicación o cualquier otra cosa. Estoy tratando de hacer que el diff sea más fácil de entender al no saturarlo con líneas extrañas +/- que no tienen ningún cambio real en ellos.

+1

cuidado para cambiar la respuesta correcta? :) – igorsantos07

Respuesta

23

De acuerdo con el manual de Git Config, no existe tal opción. Tu única opción es hacer un alias.

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

+0

Estaba pensando en leer esa página también. Esperaba que alguien supiera una forma que simplemente no estaba documentada ... bueno. – boatcoder

+0

@Dogbert - Tengo el mismo problema, solo cuando realizo git add -p , ¿alguna sugerencia? –

10

yo estaría de acuerdo con Dogbert's answer que es probablemente la mejor manera sólo tiene que utilizar un alias, pero otra opción es establecer el config option diff.external a un guión envoltorio que llama diff con -b.

78

Usted podría utilizar git alias o alias de bash si está utilizando OS concha disponible.

  1. git alias: Ejecutar este comando para añadir 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. fiesta de alias: Ejecutar este comando para agregar alias bash:

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

    abierto una nueva terminal y se puede ejecutar directamente gitdfw para lograr el mismo.

+5

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

+1

Según la [documentación actual de git] (https://git-scm.com/docs/git-diff), '-b' es lo mismo que' --ignore-space-change'. Se alinea con el comando 'diff' de Linux, donde' -w' significa '-ignore-all-space'. Es una distinción importante porque, por ejemplo, el texto 'a b c' se considera igual que' abc' con la opción '-w'; en código, es poco probable que sea lo que quieres, por lo que '-b' es una mejor opción. –

6

EDIT: YO SOY un tonto y no leyó SU SOLICITUD Throughly

Una manera 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 ~/.gitconfig o ./.git/config/ y anexar

[apply] 
    whitespace = nowarn 

También es posible que no le deje co Imita algo que solo cambia el espacio en blanco, pero estoy seguro de que puedes anularlo con algunas banderas.

+0

El OP estaba buscando una manera de establecer el valor predeterminado al hacer un 'git diff'. Esto lo hace por 'aplicar'. – denishaskin

+2

-1, pero útil ... –

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, que le da una casi copia exacta de lo git diff mostraría, con dos diferencias:

  1. la línea --- en colordiff está coloreada de manera diferente a la misma línea en git diff (problema muy pequeño)
  2. cada archivo se muestra uno a la vez (molesto problema -? alguien sabe una solución)

aquí es mi// colordiffrc etc:

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)

(colordiff se obtuvo de cerveza)