Я предполагаю, что вы используете Windows.Эта страница GitHub, на которую вы ссылаетесь, содержит подробности в обратном направлении.Проблема в том, что окончания строк CR + LF уже зафиксированы в репозитории, и потому что для core.autocrlf установлено значение true или input , Git хочетдля преобразования концов строк в LF, поэтому git status
показывает, что каждый файл изменяется.
Если это хранилище, к которому вы хотите иметь доступ, но не имеете к нему никакого отношения, вы можете выполнить следующую командупросто скрыть проблему, фактически не решая ее.
git config core.autocrlf false
Если это хранилище, в которое вы будете активно вовлечены и можете вносить изменения.Вы можете решить проблему, сделав коммит, который изменяет все окончания строк в репозитории на использование LF вместо CR + LF, а затем предпринимает шаги, чтобы предотвратить его повторение в будущем.
Следующееберется непосредственно со справочной страницы gitattributes и должен быть предварительно сформирован из чистого рабочего каталога.
echo "* text=auto" >>.gitattributes
rm .git/index # Remove the index to force Git to
git reset # re-scan the working directory.
git status # Show files that will be normalized.
git add -u
git add .gitattributes
git commit -m "Introduce end-of-line normalization"
Если какие-либо файлы, которые не должны быть нормализованы, отображаются в git status
, удалите ихтекстовый атрибут перед запуском git add -u
.
manual.pdf -text
И наоборот, для текстовых файлов, которые Git не обнаруживает, можно включить нормализацию вручную.
weirdchars.txt text