* .bat文字eol = crlf,但git仍更改行尾

时间:2019-03-31 23:51:03

标签: git powershell cygwin gitattributes

我正在运行Windows 10,并在Cygwin命令行上使用Cygwin的git,并在VS Code,PowerShell等应用程序中使用Windows git。

我有一个.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

但是,我发现在Cygwin或PowerShell上反复运行git status时,交替显示所有文件都需要修改,这取决于我最后一次检查了哪个文件。服从我的.gitattributes

响应@VonC的建议

2019年4月2日,星期二,12:32:15 PM

在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 个答案:

答案 0 :(得分:1)

确保在您的Cygwin环境中,git config core.autocrlf设置为false

git config --global core.autocrlf false

这样,Git不会自动更改文件eol,并将坚持其.gitattributes指令。