Используете ли вы Git GUI или Git Bash?
По какой-то причине графический интерфейс Git в Windows не имеет core.autocrlf, настроенного по умолчанию при клонировании репозитория, даже после попытки установить core.autocrlf в глобальной конфигурации с использованием Git Bash (это может быть настройка графического интерфейса или проблема среды, которая, если исправлено, может сделать GUI жизнеспособным вариантом).
Кроме того, по некоторым причинам графический интерфейс Git в некоторых случаях, кажется, считает, что лучше создать главную ветвь в новом репо, а не использовать существующие клонированные ветки репо. После того, как Git GUI создает эту основную ветвь, он выполняет извлечение этой главной ветви сразу после клона. Поскольку вы используете pull и у вас есть проблемы, это могло быть проблемой, только если вы изначально клонировали с помощью Git GUI.
Скорее всего, вы настроили core.autocrlf. Следующие шаги должны настроить репо для вас и обеспечить правильные настройки crlf ...
Шаги для клонирования без модифицированного мусора файлов:
Использование следующей команды в Git Bash из папки Windows клонирует хранилище в качестве полной копии без первоначальной проверки ветви.
git clone –n --no-hardlinks
Не проверяя ветку при клонировании, у вас теперь есть возможность проверить правильность настроек в файле .git / config для autocrlf перед проверкой ветки. Возможно, вы захотите добавить safecrlf просто для безопасности;) Чтобы обновить эти настройки, настройте параметры crlf, выполнив следующие команды из только что клонированного репозитория Windows с помощью Git Bash:
git config core.autocrlf true
git config core.safecrlf warn
Чтобы убедиться, что изменения были сделаны правильно, откройте ваш файл .git / config, и вы должны увидеть:
autocrlf = true
safecrlf = warn
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Вы хотите, чтобы autocrlf был установлен для ввода в вашем репозитории Linux ... значение true для вашего репозитория Windows. Кроме того, я использую только warn для safecrlf, вы можете использовать true.
Как только вы настроили конфигурацию crlf, вы можете, наконец, получить ветку в обычном режиме, используя git checkout.
Если в вашем новом локальном клоне Windows все еще есть измененные файлы, это, вероятно, связано с наличием CRLF вместо LF в вашем репозитории Linux. Это можно проверить с помощью шестнадцатеричного редактора файлов в вашем репозитории Linux и поиска, чтобы увидеть, присутствует ли 0D0A, или если все просто 0A, как и должно быть.