Подтвердить что ты не робот

Git diff - показать, что строки заканчиваются изменениями?

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

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

4b9b3361

Ответ 1

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

git config color.diff.whitespace "red reverse"

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

git diff -R

чтобы помещать пробел на "добавленной" стороне сравнения, где он становится выделенным.

Подробнее см. в ответах на этот вопрос SO.

Ответ 2

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

git diff | cat -v

Затем "^ M" печатается для окончания CRLF (DOS), ничего для завершения LF (Unix).

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

Ответ 3

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

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

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

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

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

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

Ответ 4

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

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

Ответ 5

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

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

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