Git-файлы, измененные после извлечения, сброса --hard и т. Д., Даже если для autocrlf установлено значение false
Вот мой системный диалог:
unrollme-dev-dan:views Dan$ git reset --hard HEAD
HEAD is now at 3f225e9 Fix scan titles
unrollme-dev-dan:views Dan$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: app/signup/finish.html
# modified: app/signup/scan.html
#
У меня для autocrlf установлено значение false:
unrollme-dev-dan:unroll-website Dan$ git config core.autocrlf
unrollme-dev-dan:unroll-website Dan$
unrollme-dev-dan:unroll-website Dan$ git config --global core.autocrlf
unrollme-dev-dan:unroll-website Dan$
И у меня нет файлов.gitattributes, которые могут это испортить:
unrollme-dev-dan:unroll-website Dan$ find . -name .gitattributes
[ only results are in different directory tree ]
Это вызвано .gitattributes
на один уровень выше, как указано в ответе ниже.
Когда я делаю od -c
на файлы, которые он показывает \r\n
, Я не знаю, что они "должны" быть, по-видимому, они должны заканчиваться \n
и именно поэтому разница показывает. Но я не понимаю, как эти файлы могут быть изменены при оформлении заказа даже при autocrlf
ложный.
Что может вызвать изменения в git при оформлении заказа, кроме autocrlf?
2 ответа
Эта проблема может быть вызвана текстовой опцией gitattributes https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
Эта проблема может быть исправлена путем временного редактирования вашего .gitattributes
файл в папке вашего проекта.
менять * text=auto
в #* text=auto
внесите необходимые изменения в конец файла и нажмите на кнопку "Подтвердить". Затем вы можете включить его снова после внесения изменений или выбрать один из других вариантов, которые могут лучше соответствовать вашему проекту.
У меня не было файла gitattributes, как указано в принятом ответе, в моем случае это была проблема с правами доступа к файлу. Чтобы узнать, является ли это вашей проблемой, проверьте различия в измененных файлах с помощью git diff, например:
git diff path/to/file.html
Если единственное изменение, которое вы видите, это старый режим / новый режим, это, скорее всего, проблема с разрешениями. Вы можете указать git игнорировать изменения прав доступа к файлу, используя:
git config core.filemode false
или же
git config --global core.filemode false
(в зависимости от того, как вы используете git).
Недавно я переключился с использования Cygwin git на git для Windows по соображениям производительности, а также из-за того, что TortoiseGit работает должным образом, возможно, по этой причине в моем случае были сброшены разрешения.
Рекомендации: