2015-02-20 3 views
2

Раньше я получал warnings около LF will be replaced by CRLF при выполнении git commit.git diff -^M characters

Я играл с autocrlf, но установил его на true или false оба вызвали проблемы. В конце концов, после этого комментария (LF will be replaced by CRLF in git - What is that and is it important?) от @Drew Noakes, я просто отключил его и зафиксировал warnings.

Однако, теперь, когда я бегу git diff я получаю такой вывод:

-  original line; 
+  new line;^M 

Что происходит, и есть ли способ избавиться от этих надоедливых ^M ей раз и навсегда?

Если это помогает, это мое собственное репо (т. Е. Я полностью контролирую базу кода), и я нахожусь на Mac.

+0

У вас есть файлы '.gitattributes' с директивой' core.eol'? – VonC

+0

@ VonC У меня нет, но у меня есть файл .gitattributes с '* .pbxproj -crlf -diff -merge'. Я предполагаю, что это не имеет ничего общего с проблемой, поскольку это относится только к файлам pbxproj. – Snowcrash

ответ

0

Чтобы удалить их, вы можете выполнить что-то вроде этого из вашей оболочки:

$ find -type f -exec sed -i -e 's/^M//g' {} + 

... где вам нужно вставить ^M с помощью [Ctrl + V] [Ctrl + M] (см здесь более варианты remove ^M characters from file using sed). Поскольку вы на Mac, они не должны возвращаться после этого, но я признаю, что не совсем уверен, что git не вернет их.