Visual studio 2010 为什么git考虑更改整个文件,而只更改其中的一部分

Visual studio 2010 为什么git考虑更改整个文件,而只更改其中的一部分,visual-studio-2010,git,Visual Studio 2010,Git,我在使用git时遇到了一个奇怪的情况。我只是在一个长文件中编辑了几行,但当我去提交更改时,我看到git只是用红色突出显示了整个文件内容。怎么了 我正在使用git的windows GUI 编辑:我现在记得的一件事是,我在上次提交时将.csproj添加到gitignore列表中。这有什么影响吗 更新:正如朋友们所说,问题出在行尾。我用这个解决了这个问题,因为行结束了 git config core.autocrlf已设置为true。我使用了这两篇文章中提到的解决方案 并将其设置为false。问题

我在使用
git
时遇到了一个奇怪的情况。我只是在一个长文件中编辑了几行,但当我去提交更改时,我看到git只是用红色突出显示了整个文件内容。怎么了

我正在使用git的windows GUI

编辑:我现在记得的一件事是,我在上次提交时将.csproj添加到gitignore列表中。这有什么影响吗


更新:正如朋友们所说,问题出在行尾。我用这个

解决了这个问题,因为行结束了

git config core.autocrlf
已设置为true。我使用了这两篇文章中提到的解决方案


并将其设置为false。问题已经解决。

我们在Windows上的Visual Studio 2015(vs2015)中遇到了同样的问题,其中的文件我们已经编辑过,但未完成所有编辑

在另一个答案中,我唯一想补充的是,我们最终要做的是,通过注释掉,尝试编辑解决方案根目录下的.gittributes

* text=auto
将来

#* text=auto
根据这篇文章,这个条目覆盖git配置,所以即使您删除git配置中的另一个条目,问题仍然可能发生

注释.gittributes删除了伪造的编辑,取消注释后又为我们添加了伪造的编辑


这个答案最初来自哪里:

真奇怪,您确定以前提交过该文件的内容吗?
git diff
告诉您什么?您没有更改到没有特定文件的分支吗?@rlegendi:我只记得我在上次提交时向gitignore添加了.csproj。这就是问题所在,对吗?给出git状态的输出。另外,文本编辑器是否使用了错误的行尾?是否使用行尾会导致git认为您的整个文件是一条长行?正如其他人所建议的,这听起来很像行尾问题:什么是
core.autocrlf
设置为(
git config core.autocrlf
),以及您使用了什么编辑器来更改文件?