git diff - показать мне изменения конца строки? - PullRequest
68 голосов
/ 13 октября 2010

Мой редактор меняет окончания строк моих исходных файлов.Когда я делаю git diff, я вижу одну и ту же строку дважды - один раз с - и один раз с + - без видимой разницы.

Как мне получить git diff, чтобы показать, чтоэто изменение на самом деле было?

Ответы [ 5 ]

57 голосов
/ 16 июля 2012

Во-первых, убедитесь, что вы используете цветной вывод (например, с помощью git diff --color) и что вы включили выделение пробелов с помощью (например)

git config color.diff.whitespace "red reverse"

Это может работать не во всех случаях,однако, поскольку git не выделяет конечные пробелы для удаленных строк.Чтобы увидеть пробелы, которые вы удалили, просто используйте

git diff -R

, чтобы поместить пробел в «добавленную» сторону сравнения, где он будет выделен.

Для получения более подробной информации,см. ответы на этот вопрос .

21 голосов
/ 15 сентября 2016

Вы можете увидеть разницу в конце строки с помощью следующей команды.

git diff | cat -v

Затем выводится «^ M» для окончания CRLF (DOS), ничего для окончания LF (Unix).

Очевидно, что git diff делает правильные вещи, печатая символы CR и LF для окончания CRLF. Но поскольку CR потребляется консолью, мы не можем его увидеть. Используя cat -v, мы можем сделать его видимым.

14 голосов
/ 13 апреля 2016

Один из способов увидеть изменения пробелов - сделать посимвольное "word diff" с помощью

git diff --color --word-diff-regex=.

Это выделяет все изменения пробелов везде в строках . Удаленные пробелы переносятся в [- и -] и добавляются пробелы в {+ и +}.

В качестве альтернативы, как предложено Алексом

git diff --color --ws-error-highlight=new,old

выделяет все изменения пробелов в концах линий .

8 голосов
/ 11 апреля 2016
git diff --ws-error-highlight=new,old

выделяет различия в пробелах в измененных строках.

5 голосов
/ 13 октября 2010

Графический инструмент сравнения лучше покажет вам изменения - попробуйте git difftool.

Используйте meld и установите предпочтения для отображения пробела.(Правка -> Параметры -> Показать пустое пространство.)

Другие графические инструменты, вероятно, имеют аналогичные параметры - ответ + комментарий Коттона говорит, как это сделать с помощью vimdiff.

...