Я использую Ubuntu 13.10 x64, и я работаю над проектом, который некоторые разработчики используют Windows. Недавно я изменил конфигурацию git core.eol
на «lf», core.autocrlf
«input» и core.safecrlf
«true». С тех пор, когда я пытаюсь зафиксировать файл в моем локальном репозитории, я получаю эту ошибку:
fatal: CRLF would be replaced by LF in ......
Насколько я понимаю, если я установлю core.eol
«lf» и core.autocrlf
«input», git автоматически преобразует CRLF в LF, но почему возникает эта ошибка из? Как я могу исправить эту проблему?
Спасибо.
git diff
вывод: git.661346.n2.nabble.com/…core.autocrlf
на ввод?git config core.eol
"lf
"иcore.autocrlf
"input
"": это не меняет файлы, которые уже есть. Это повлияет на будущееgit pull
. Текущие файлы все еще находятся в CRLF и, если они изменены, преобразуются в LF, если это возможно, и, если нет, вызывает сообщение об ошибке, которое вы упомянули.У меня была та же проблема, и я безуспешно попробовал предложенное решение.
Мне пришлось выполнить вторую команду, чтобы она заработала:
источник
источник
git diff
вижу весь мой файл (1000 строк) как конфликт. Инструменты различий видят только 3 изменения строки.Можно просто попробовать dos2unix:
источник
Это случилось со мной с тысячами файлов. Поэтому я написал быстрый сценарий bash, чтобы
dos2unix
исправить это за меня. Кто-то другой на Linux или Mac может счесть это полезным.В основном пытается это сделать
git add .
. Если команда не работает, она берет имя несовместимого файла из вывода ошибки. Затем он запускаетсяdos2unix
в этом файле. Он продолжает повторять этот процесс, пока неgit add .
сработает.Если вы запустите это, вы должны постоянно видеть
dos2unix: converting file xxx to Unix format...
. Если вы этого не сделаете, он не работает, поэтому просто нажмите ctrl+ cили command+, cчтобы остановить его.источник
Вам необходимо добавить все файлы, которые
git status
отображаются как измененные:А затем зафиксируйте свои изменения:
Это сохранит ваши локальные файлы как есть, но сохранит
autocrlf
их в удаленном репозитории.источник
Я столкнулся с той же проблемой и исправил редактирование,
.gitattributes
как показано ниже.закомментируйте 2 строки в .gitattributes
источник
К вашему сведению, я не уверен, относится ли это к вам, но я получал эту ошибку, когда случайно пытался добавить все
node_modules
к поэтапным изменениям. Так на самом деле решить мою проблему..gitignoring
node_modules
источник
Я использую Mac с помощью терминала, и у меня возникла проблема с файлом .htaccess, который я пытался зафиксировать, получив фатальную ошибку:
Я хотел решить проблему, такую как запросы OP, а не просто отключить флаг git, поэтому я нашел эту статью, в которой есть команда Perl для устранения проблемы для каждого файла.
Итак, для моей ошибки .htaccess выше я выполнил следующее:
Флаги -p, -i и -e (круговая диаграмма) можно комбинировать, чтобы вы могли редактировать файлы с помощью Perl из командной строки. В этом случае замена всех найденных \ r \ n на \ n.
источник