命令行上使用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
指令。