Git diff -w игнорировать пробелы только в начале и конце строк - PullRequest
326 голосов
/ 04 декабря 2010

Я люблю использовать git diff -w, чтобы игнорировать различия между пробелами.Но я только что заметил, что он игнорирует даже различия между пробелами в середине строк.Как я мог игнорировать только различия между пробелами, которые появляются в начале (^) или конце ($) строк?

Ответы [ 2 ]

403 голосов
/ 04 декабря 2010

Для конца строки используйте:

git diff --ignore-space-at-eol

Вместо того, что вы используете в настоящее время:

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

Для начала строки ... вам не повезло, если вы хотите встроенное решение.

Однако, если вы не возражаете запачкать руки, то где-то где-то всплывает довольно старый патч, который добавляет поддержку "--ignore-space-at-sol".

1 голос
/ 07 ноября 2018

Это старый вопрос, но он все еще регулярно просматривается / нужен.Я хочу предупредить таких читателей, как я, что пробел , как упоминалось в вопросе OP, , а не , то же самое, что и определение Regex, для включения новых строк, табуляции и пробелов - Git спрашиваетВы должны быть явными.См. Некоторые параметры здесь: https://git -scm.com / book / ru / v2 / Customizing-Git-Git-Configuration

Как указано, git diff -b или git diff --ignore-space-change будут игнорироватьсяпробелы в конце строки.Если вы хотите, чтобы этот параметр был вашим поведением по умолчанию, следующая строка добавляет это намерение в ваш файл .gitconfig, поэтому он всегда будет игнорировать пробел в конце строки:

git config --global core.whitespace trailing-space

InВ моем случае я нашел этот вопрос, потому что мне было интересно игнорировать «различия пробелов при возврате каретки», поэтому мне нужно было следующее:

git diff --ignore-cr-at-eol или git config --global core.whitespace cr-at-eol из здесь .

Вы также можете сделать его по умолчанию только для этого репо , пропустив параметр --global и проверив файл настроек для этого репо.Для проблемы CR, с которой я столкнулся, после регистрации она исчезает, если warncrlf или autocrlf = true в разделе [core] файла .gitconfig.

...