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


我正在运行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

在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!

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

git config --global core.autocrlf false

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

相关内容

  • 没有找到相关文章

最新更新