为什么GitHub认为我的代码有差异?

为什么GitHub认为我的代码有差异?,git,github,newline,Git,Github,Newline,当我加上 # Auto detect text files and perform LF normalization * text=auto …在我的配置文件中,GitHub应用程序/客户端表示存储库中的许多(如果不是全部?)文件已更改。对他们中的许多人来说,它说整个文件已经改变了,尽管它显然没有改变。很明显,这是一个关于行尾的问题,但我不明白为什么会发生这种情况 似乎只要你告诉Git(通过配置文件)一个文件类型是文本,它就会产生差异。使用text=auto,Git希望以LF格式存储文件——它

当我加上

# Auto detect text files and perform LF normalization
* text=auto
…在我的配置文件中,GitHub应用程序/客户端表示存储库中的许多(如果不是全部?)文件已更改。对他们中的许多人来说,它说整个文件已经改变了,尽管它显然没有改变。很明显,这是一个关于行尾的问题,但我不明白为什么会发生这种情况


似乎只要你告诉Git(通过配置文件)一个文件类型是文本,它就会产生差异。

使用text=auto,Git希望以LF格式存储文件——它不只是对存在的内容应用过滤器。因此,任何尚未存储LF结尾的文件都将显示为正在修改。您可能希望按照本节中的建议执行以下操作:

$ rm .git/index     # Remove the index to force Git to
$ git reset         # re-scan the working directory
$ git status        # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"

我以为是这样的。谢谢。麻烦的是每个文件在提交后看起来都被完全更改了。我认为存储库中的文件可能都是Windows格式的。是的,我真的不喜欢它的工作方式。我有一个用于创建新存储库的模板,以确保从一开始就规范化行尾,从而避免此类问题。FWIW、Subversion和其他类似的问题。我在设置“core.autocrlf=false”后得到了一个干净的提交。所以现在新的行编码保持不变。我需要坐下来看看
core.autocrlf
更多。。。我也在Windows虚拟机上关闭了它。它本应能缓解问题,但我觉得它带来了更多。很高兴你的工作做得更好!