Что касается форматирования кода, я немного пурист :). Я очень часто удаляю ненужные пробелы (строки только с w, w в конце строк и т. Д.). Я даже установил vim, чтобы показать такие линии, окрашенные в красный цвет.
Моя проблема в том, что с помощью git-diff я часто вижу что-то вроде этого:
- else{
+ else{
Даже если у меня цвет git-diff, я не вижу разницы (в этой конкретной ситуации я убрал 1 ws в конце строки). Есть ли какой-нибудь способ сказать git-diff, чтобы он показывал, что он окрашен в красный? (например, те, которые соответствуют / \ s + $ / regexp).
git
colors
diff
whitespace
radarek
источник
источник
Ответы:
Вам может потребоваться установить параметр конфигурации color.diff.whitespace, например, с помощью:
(Я предполагаю, что у вас уже есть
color.diff
илиcolor.ui
установлено,auto
так как вы говорите, что вы видите цветные пятна вgit diff
любом случае.)Если вы хотите точно настроить тип ошибок пробелов, которые выделены красным цветом, вы можете изменить их
core.whitespace
, но ониblank-at-eol
включены по умолчанию, поэтому вам, вероятно, не придется менять это для примера, который вы упомянули.Возможный источник путаницы заключается в том, что в выходных данных
git diff
ошибки пробелов выделяются только во введенных строках, а не в удаленных. ( Обновление: как указывает Пол Уиттекер в своем ответе , который вы должны проголосовать с повышением :), вы можете увидеть это, изменив смысл различий с помощьюgit diff -R
.)Вы можете найти больше документации по этим параметрам конфигурации на странице руководства git config.
Если вы не хотите использовать
-R
kludge, вы можете использовать опцию WhiteSpace Error Highlight со страницы руководства diff .git diff --ws-error-highlight=new,old <file>
или
git diff --ws-error-highlight=all <file>
Я не знаю способ навсегда включить это и сохранить это в конфигурации, кроме использования псевдонима:
git config alias.df 'diff --ws-error-highlight=all'
Теперь вы можете использовать:
git df <file>
Чтобы увидеть изменения в красном.
Обратите внимание, что в Git 2.11 (Q4 2016) этот псевдоним может быть заменен следующим:
Смотрите документ дальше
git diff
и дальшеgit config
.источник
git diff -R
git config diff.wsErrorHighlight all
. Используйте,git config --global [...]
чтобы сделать изменения глобальными (т.е. повлиять на все репо).Используйте,
git diff -R
чтобы превратить удаленные строки в добавленные строки. Затем конечные пробелы будут выделены.(Это предполагает, что у вас уже включена подсветка пробелов в соответствии с настройками цвета из ответа Марка. Кредит для этого метода идет в пост Junio по адресу http://git.661346.n2.nabble.com/Highlighting-whitespace-on-removal- with-git-diff-td5653205.html .)
Например, при преобразовании файла из концов строки DOS в Unix
git diff -R
четко отображаются^M
символы (dis), появляющиеся на концах строк. Без-R
(а также без-w
и т.д.) показывает, что весь файл изменился, но не показывает, как.источник
git diff | cat -A | less -S
если вы в отчаянии, но в дополнение к возврату каретки в немcat
также будут буквально отображаться любые коды выхода с подсветкой.cat -A
не переносимый. На кошке BSD такой опции нет. Пожалуйста, используйтеcat -vet
вместо этого.Использование
git diff --color | less -R
. Это-R
делает коды управления цветом удобными для человека.Тогда вы можете использовать
less
поиск по регулярному выражению, например,источник
vim
, кстати.less -R
просто облегчила мнеls --color
прохождениеless
.Моя версия
git diff
уже, кажется, делает это - я установил git 1.7.4.1color.ui = auto
.источник