处理Cygwin Git和Git for Windows中的EOL字符访问同一个存储库

Art*_*r C 6 git cygwin line-endings msysgit core.autocrlf

我的意思autocrlf是对的.在我的cygwin-shell中git status给出了我所有更改的正确列表.

在Git Bash中git status说我修改了项目中的所有文件.我也在Git GUI和IntelliJ中的Changes-tab中看到了这一点.

这怎么可能,更重要的是,我该如何解决?

kos*_*tix 6

Cygwin Git"看世界"就像在POSIX平台上运行一样 - 感谢Cygwin提供的仿真.与此相反,Git for Windows是一个本机 Windows程序,它不使用任何仿真,并试图尽可能接近Windows标准(尽管是愚蠢的).这导致Cygwin Git LF是标准的EOL角色,而对于Git for Windows,原生EOL序列是CRLF.所以这两种工具都以不同的方式看待世界,这解释了你所观察到的.请阅读此最近的主题以获取更多信息(尤其是此消息).

在任何一种情况下,无论如何都要考虑设置core.autocrlffalse避免头痛这种"魔法".我只使用GfW,最后将该设置切换为false(默认为true).

您可能还会发现.gitattributesMono项目中备受好评的文件非常有趣.