Git - Странность при использовании .gitattributes для принудительного завершения строк - PullRequest
0 голосов
/ 04 октября 2018

Итак, я недавно добавил файл .gitattributes в один из наших репозиториев, чтобы попытаться использовать согласованные окончания строк:

  # All Perl Sources should use Unix style line endings
  *.pl text eol=lf
  *.pm text eol=lf

Но и я, и многие другие разработчики сталкиваются с большим количеством«фантомные изменения», когда git, похоже, обнаруживает файл как «измененный», хотя изменений нет.Каждая строка отображается как добавленная, а затем удаленная.

Я подозреваю, что она запутывается в конце строк (и, следовательно, обнаруживает каждую строку как измененную), но что странно здесь:

  • Iне удается сбросить файл (сброс завершен, но файл остается неизменным)
  • Изменение концов строк в затронутом текстовом файле не влияет на то, отображается ли он как измененный файл.

Кто-нибудь сталкивался с этим раньше, и есть ли способ избежать или решить эту проблему?

1 Ответ

0 голосов
/ 04 октября 2018

С Git 2.16 или более, сделайте хотя бы один раз:

git add --renormalize .
git commit -m "normalize eol files"
git push

Затем попробуйте клонировать репо в другом месте и убедитесь, что git status ведет себя так, как ожидалось.

Убедитесь, что core.autocrlf не установлен на true.

git config core.autocrlf

И вы можете проверить свои файлы в стиле eol .

...