Текстовый редактор Atom добавляет этот символ к каждой пустой строке.
Любая идея, что и почему?
Я на Ubuntu Linux и заметил ^ M (возврат каретки, подача линии) во время git diff
.
Как-то CRLF был выбран в нижней части строки состояния:
Я просто щелкнул его и изменил на LF:
Кажется, что он установлен по-по файлу, поэтому его нужно будет изменить для каждого файла проблемы.
В моем случае как-то все окончания строки были изменены, поэтому git diff
было красным. Для определения "реальных" изменений я использовал следующее:
git diff --ignore-space-at-eol
Тем не менее, git commit
по-прежнему будет хоронить "реальные" изменения в истории фиксации, чтобы я:
git stash save
git commit -am "fix line endings"
git stash apply
Теперь окончание строк исчезло, и фиксации могут быть сделаны на точной разности.
Вы используете текстовый редактор Atom под Windows?
Возврат каретки Windows \r\n
, пока он равен \n
в Unix. ^M
(0xD
или \r
) является символом возврата каретки в Windows.
Я думаю, что этот файл был ранее сохранен под Unix (и уже имеет \n
в каждой строке), поэтому Atom добавляет \r
в соответствии с требованиями Windows.
Для получения дополнительной информации вы можете увидеть this и this
Проверьте нижнюю часть редактора, которая могла бы изменить окончание строки файла.
Обычно это LF для Unix
и CRLF для окон
Большинство решений, которые я нашел в Интернете, используют sed, vi или emacs. Я нашел решение, которое работает непосредственно в Atom (и, возможно, в любом текстовом редакторе), без командной строки.
Выберите все возвращаемые значения или выберите селектор в начале каждой строки, затем удалите и нажмите return. Это может занять секунду, но оно избавится от всех символов ^ M.
Это, скорее всего, испортит ваш отступ, но вы можете автоматически отступать. Это может быть неэффективно, если у вас есть несколько файлов, которые вам нужны для этого, но это быстрое и грязное решение только для одного файла.