web-dev-qa-db-fra.com

Git diff -w ignore les espaces en début et fin de ligne

J'aime utiliser git diff -w pour ignorer les différences d'espaces. Mais, j'ai juste remarqué qu'il ignore même les différences d'espaces au milieu des lignes. Comment pourrais-je uniquement ignorer les différences d'espaces qui apparaissent au début (^) ou à la fin ($) des lignes?

332
ma11hew28

Pour une utilisation en fin de ligne:

git diff --ignore-space-at-eol

Au lieu de ce que vous utilisez actuellement:

git diff -w (--ignore-all-space)

Pour le début de la ligne ... vous n'avez pas de chance si vous voulez une solution intégrée.

Cependant, si cela ne vous dérange pas de vous salir les mains, un patch assez ancien flotte quelque part qui ajoute un support pour "--ignore-space-at-sol".

408

Ceci est une vieille question, mais est toujours régulièrement consulté/nécessaire. Je tiens à signaler aux lecteurs comme moi que les espaces mentionnés dans la question du PO sont et non les identique à la définition de Regex, pour inclure les nouvelles lignes, les tabulations et les espaces - Git vous demande d’être explicite. Voir quelques options ici: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

Comme indiqué, git diff -b ou git diff --ignore-space-change ignorera les espaces en fin de ligne. Si vous souhaitez que ce paramètre soit votre comportement par défaut, la ligne suivante ajoute cette intention à votre fichier .gitconfig, de sorte qu'elle ignore toujours l'espace à la fin de la ligne:

git config --global core.whitespace trailing-space

Dans mon cas, j'ai trouvé cette question parce que je voulais ignorer les "différences d'espacement entre les retours chariot". J'avais donc besoin de ceci:

git diff --ignore-cr-at-eol ou git config --global core.whitespace cr-at-eol de ici .

Vous pouvez également en faire la valeur par défaut uniquement pour ce référentiel en omettant le paramètre --global et en intégrant le fichier de paramètres de ce référentiel. Pour le problème de CR auquel j'ai été confronté, il disparaît après l'enregistrement si warncrlf ou autocrlf = true dans la section [core] du fichier .gitconfig.

1
deasserted