Comment faire de git diff --ignore-space-change la valeur par défaut

110

Je pourrais probablement configurer un alias, mais il semble que je devrais pouvoir le définir comme option dans le fichier de configuration, mais je ne vois pas de toute façon le faire.

Je veux seulement le --ignore-space-changequand je fais des diff, pas quand je fais appliquer ou quoi que ce soit d'autre. J'essaie de rendre le diff plus facile à comprendre en ne l'encombrant pas avec des lignes +/- étrangères qui n'ont pas de changements réels.

bateau
la source
2
voulez-vous changer la bonne réponse? :)
igorsantos07
1
maintenant il y a un raccourci git diff -wqui est un raccourci pour --ignore-all-space: Ignorer les espaces lors de la comparaison des lignes. Cela ignore les différences même si une ligne a des espaces alors que l'autre ligne n'en a pas.
João Pimentel Ferreira

Réponses:

22

Selon le manuel de Git Config, une telle option n'existe pas. Votre seule option est de créer un alias.

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

Dogbert
la source
Je pensais cela en lisant cette page aussi. J'espérais que quelqu'un connaissait un moyen qui n'était tout simplement pas documenté ... eh bien.
boatcoder
@Dogbert - J'ai le même problème, uniquement lorsque j'exécute git add -p <file_name>, des suggestions?
Guy Avraham
@ JoãoPimentelFerreira Cela n'en fait pas la valeur par défaut.
DylanYoung
il existe une telle option stackoverflow.com/a/53054020/1243247
João Pimentel Ferreira le
99

Vous pouvez utiliser l' alias git ou l' alias bash si vous utilisez un système d'exploitation disponible par le shell.

  1. git alias : exécutez cette commande pour ajouter un alias:

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

    --ignore-space-change can be abbreviated to -w
    pour appliquer l'alias en utilisant: git dfw

  2. alias bash : exécutez cette commande pour ajouter l'alias bash:

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

    Ouvrez un nouveau terminal et vous pouvez directement exécuter gitdfwpour obtenir la même chose.

yjqg6666
la source
8
Cela devrait être la réponse acceptée, car elle est en fait utile avec des exemples plutôt que «aller à cette URL».
DrStrangepork
7
Selon la documentation actuelle de git , -best identique à --ignore-space-change. Il s'aligne sur la diffcommande Linux , où -wsignifie --ignore-all-space. C'est une distinction importante car, par exemple, le texte a b cest considéré comme le même que abcpour l' -woption; dans le code, il est peu probable que ce soit ce que vous voulez, c'est donc -bune meilleure option.
Richard Wiseman
10

EDIT: JE SUIS UN FOU ET JE N'AI PAS LIRE VOTRE DEMANDE COMPLÈTEMENT

Un moyen de réaliser quelque chose de similaire, à partir de man git-config:

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

Alors ouvrez votre ~/.gitconfigou ./.git/config/et ajoutez

[apply]
   whitespace = nowarn

Cela pourrait également ne pas vous permettre de commettre quelque chose qui ne change que les espaces, mais je suis sûr que vous pouvez annuler cela avec certains indicateurs.

quelques git utiles
la source
1
L'OP cherchait un moyen de définir la valeur par défaut lors de l'exécution d'un fichier git diff. Cela le fait pour apply.
denishaskin
10

Ancienne question (2011), mais maintenant il y a un raccourci git diff -wqui signifie --ignore-all-space

Ignorez les espaces lors de la comparaison des lignes. Cela ignore les différences même si une ligne a des espaces alors que l'autre ligne n'en a pas.

João Pimentel Ferreira
la source
2

ce serait formidable si cela était possible avec une option. mais un alias fonctionne assez bien. voici les lignes pertinentes de mon .gitconfig:

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

cela suppose l'utilisation de colordiff, que je recommande, vous donnant une copie presque exacte de ce que git diff montrerait, avec deux différences:

  1. la ligne --- dans colordiff est colorée différemment de la même ligne dans git diff (problème très mineur)
  2. chaque fichier est affiché un à la fois (problème ennuyeux - quelqu'un connaît un correctif?)

voici mon / etc / colordiffrc:

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

Mac OS X 10.9.2, version git 1.8.5.2 (Apple Git-48)

(colordiff a été obtenu à partir de bière)

Joseph Cheek
la source