Мой редактор меняет окончания строк в моих исходных файлах. Когда я это делаю git diff
, я вижу одну и ту же линию дважды - один раз с -
и один раз с +
- без видимой разницы.
Как мне git diff
показать, чем на самом деле было это изменение?
git
line-endings
git-diff
Стонки
источник
источник
git config diff.wsErrorHighlight all
Ответы:
Во-первых, убедитесь, что вы используете цветной вывод (например, с помощью
git diff --color
) и что вы включили выделение пробелов с помощью (например)Однако это может работать не во всех случаях, так как
git
не выделяет конечные пробелы для удаленных строк. Чтобы увидеть удаленные пробелы, просто используйтечтобы поставить пробел на «добавленной» стороне сравнения, где он выделяется.
Для получения дополнительной информации см. Ответы на этот вопрос SO .
источник
000000f0 2d 2d 7d 0a 2b 2b 7d 0a |--}.++}.|
7d - это фигурная скобка '}'.Вы можете увидеть разницу в конце строки с помощью следующей команды.
Затем "^ M" печатается для окончания CRLF (DOS), ничего для окончания LF (Unix).
По-видимому, git diff поступает правильно, печатая символы CR и LF для окончания CRLF. Но поскольку CR используется консолью, мы не можем его увидеть. Используя cat -v, мы можем сделать его видимым.
источник
git diff > somediff && vi somediff
vim также показывает CRLF как ^ M. ноcat -v
это аккуратно.cat
котором я не знал. :-)Один из способов увидеть изменения в пробелах - это посимвольно "word diff" с
Это выделяет все изменения пробелов повсюду в строках . Удалены пробельные заворачивают в
[-
и-]
и добавил пробелы в{+
и+}
.В качестве альтернативы, как предлагает Алекс
выделяет все изменения пробелов на концах строк .
источник
выделяет пробелы в измененных строках.
источник
Графический инструмент сравнения различий лучше покажет вам изменение - попробуйте
git difftool
.Используйте сочетание и установите в настройках отображение пробелов. (Правка -> Настройки -> Показать пробелы.)
Другие графические инструменты, вероятно, имеют аналогичные параметры - ответ + комментарий @ Cotton расскажет вам, как это сделать с помощью vimdiff.
источник
git difftool --tool=meld doesn't
даже запускать мельд. Я не знаю, происходит ли это из-за того, что выполняется перебазирование или нет.