* .bat text eol = crlf, но git по-прежнему меняет окончание строки - PullRequest
1 голос
/ 01 апреля 2019

Я работаю под управлением Windows 10 и использую git Cygwin в командной строке Cygwin, а также использую git для Windows в таких приложениях, как VS Code, PowerShell и т. Д.

У меня есть файл .gitattributes со следующими записями:

text eol=crlf

*.ahk     text eol=crlf
*.bat     text eol=crlf
*.cmd     text eol=crlf
*.css     text 
*.java    text 
*.js      text 
*.md      text eol=crlf
*.sh      text eol=lf
*.txt     text eol=crlf
*.xml     text

Тем не менее, я обнаружил, что чередование выполнения git status в Cygwin или PowerShell неоднократно отображает все файлы как требующие изменений, в зависимости от того, с каким из них я последний раз проверял их все ... как получитьдва, чтобы согласиться и подчиняться моим .gitattributes?

В ответ на предложение @ VonC

Вторник, 2 апреля 2019 г., 12:32:15

Вкл.Cygwin я делаю это:

$ git config --global core.autocrlf
false

$ echo "* text=auto" >>.gitattributes

$ git add --renormalize .

$ git commit -m "Introduce end-of-line normalization"
... snip

$ git push
... snip

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

А затем в PowerShell

> git config --global core.autocrlf
false

> git status 
... snip.. every single file listed.. again!

1 Ответ

1 голос
/ 01 апреля 2019

Убедитесь, что в вашей среде Cygwin для git config core.autocrlf установлено значение false

git config --global core.autocrlf false

Таким образом, Git не будет автоматически изменять файлы eol и будет придерживаться его .gitattributesдирективы.

...