У меня проблема с файлами, которые отображаются как измененные после нового клона git.
- все текстовые файлы должны содержать
eol=LF
, за исключением файлов*.txt
, в которых должно бытьeol=CRLF
.
Вот как выглядит .gitattributes
:
* text=auto
*.txt text eol=crlf
*.png binary
*.jpg binary
*.bmp binary
Вот мои тесты:
- new repo with 2 .txt files (LF.txt and CRLF.txt)
LF.txt
: eol=LF (end of line isLF
in the whole file)CRLF.txt
: eol = CRLF (конец строки -CRLF
во всем файле)
- добавить, зафиксировать, нажать
- добавить
.gitattributes
(с описанным выше содержанием):git add .gitattributes
, зафиксировать, нажать - fresh clone of repo
LF.txt
: eol is nowCRLF
(as expected)CRLF.txt
считается измененным, даже еслиCRLF
все еще имеет значение eol
- new repo with 2 .txt files (LF.txt and CRLF.txt)
LF.txt
: eol=LFCRLF.txt
: eol = CRLF
- добавить, зафиксировать, нажать
- add
.gitattributes
(with the content described above):git add --renormalize .
CRLF.txt
is seen as modified and staged (but there are no content differences and eol is stillCRLF
).gitattributes
все еще не отслеживается
- трек
.gitattributes
:git add .
- совершить и подтолкнуть
- fresh clone of repo
LF.txt
: eol is nowCRLF
(as expected)CRLF.txt
: eolCRLF
(как в начале)- репо чистое
Дополнительная информация
- ОС: Windows 10
- версия git: 2.20.1.windows.1
Вопросов
- Тест 1: почему CRLF.txt отображается как измененный после нового клона?
- Тест 2: что на самом деле делает
git add --renormalize .
? Почему он также не ставит.gitattributes
? - При настройке
.gitattributes
в репо, которое уже имеет некоторую историю, рекомендуется ли запускатьgit add --renormalize
, чтобы избежать изменения файлов после нового клонирования?