2015-01-21 2 views
2

Я на Ubuntu 14.04. Я редактирую файлы с помощью Vim. Внезапно я начал замечать, что изменения, которые я делаю, которые я вижу с git diff filename, содержат ^M в конце каждой строки, которую я вставил или изменил. Поэтому после того, как я бегу git add к filename я вижу с git diff --staged что каждая линия имеет^Mв конце и, таким образом, это как если бы я сделал изменения в весь файл даже если я изменил только одну строку. Пожалуйста, помогите мне понять, что здесь происходит.`git add` добавляет^M в конец каждой строки

+0

у вас есть неправильная настройка окончания линии. На сайте есть много тем - 'core.safecrlf' и' core.autocrlf' - это настройки, которые вы должны исправить. Обратите внимание, что после исправления вам может потребоваться воссоздать локальную проверку. – eis

+1

Также проверьте [this] (https://help.github.com/articles/dealing-with-line-endings/). – eis

+1

@eis спасибо за предложение, но ответ Блейка действительно сработал – valk

ответ

2

Вы проверяете файлы с компьютера Windows в любой момент? Windows добавляет CR+LF в конец строки, тогда как другие ОС используют только LF. Если вы установили core.autocrlf в false, тогда git diff выделит символы CR как ^M. Чтобы отключить эту функцию, вы можете изменить настройку core.whitespace:

git config --global core.whitespace cr-at-eol 
+0

Он был отредактирован, вероятно, на Windows раньше! Это route.rb. Эта конфигурация полностью игнорирует^M или на самом деле не вставляет их при постановке, т. Е. Git-add? – valk

Смежные вопросы