My autocrlf https://help.github.com/articles/dealing-with-line-endings/等于 true。在我的 cygwin-shell 中git status
为我提供了所有更改的正确列表。
在 Git Bash 中git status
说我修改了项目中的所有文件。我还在 Git GUI 和 IntelliJ 的“更改”选项卡中看到了这一点。
这怎么可能,更重要的是,我该如何解决它?
Cygwin Git “看世界”就好像它运行在 POSIX 平台上一样——这要归功于 Cygwin 提供的模拟。与此相反,Git for Windows 是nativeWindows 程序不使用任何模拟并尝试尽可能接近 Windows 标准(无论多么愚蠢)。这导致对于 Cygwin Git 来说,LF
是标准 EOL 字符,而对于 Windows 版 Git,本机 EOL 序列是CRLF
。因此,这两种工具以不同的方式看待世界,这解释了您所观察到的情况。请阅读最近的这个话题 https://groups.google.com/forum/#!topic/msysgit/xmAOOAZ9ing欲了解更多信息(尤其是这条信息 https://groups.google.com/d/msg/msysgit/xmAOOAZ9ing/GO_7XRcdsfQJ).
在任一情况下,考虑设置core.autocrlf to false anyway https://stackoverflow.com/a/22928888/720999以避免与此“魔法”相关的头痛。我只使用 GfW,最后将该设置切换为false
(默认为true
)永远。
您可能还会发现评论非常好的.gitattributesMono 项目中的文件 https://github.com/mono/mono/blob/master/.gitattributes学习起来要有趣。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)