git diff - показать мне изменения конца строки?

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

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

5 ответов

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

git config color.diff.whitespace "red reverse"

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

git diff -R

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

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

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

git diff | cat -v

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам