如何以与“一致”的方式提交文件;git diff-w“是什么;?

如何以与“一致”的方式提交文件;git diff-w“是什么;?,git,github,version-control,Git,Github,Version Control,最近,在Windows上执行“git diff”时,我注意到我编辑的所有行都在行尾显示^M字符。我知道行尾是git中跨平台项目的常见问题,但我的安装正确配置了core.autocrlf设置为true,这是Windows的建议设置 因此,我认为编辑器必须将CRLF行尾添加到新行中,git diff只是感到困惑,没有意识到应该在提交时将这些行尾规范化为LF,从而错误地显示^M字符 因此,为了帮助解决这个问题,我进入我的编辑器,强制转换为Unix风格的行尾 然后,当我键入“git diff”时,它不再

最近,在Windows上执行“git diff”时,我注意到我编辑的所有行都在行尾显示^M字符。我知道行尾是git中跨平台项目的常见问题,但我的安装正确配置了core.autocrlf设置为true,这是Windows的建议设置

因此,我认为编辑器必须将CRLF行尾添加到新行中,git diff只是感到困惑,没有意识到应该在提交时将这些行尾规范化为LF,从而错误地显示^M字符

因此,为了帮助解决这个问题,我进入我的编辑器,强制转换为Unix风格的行尾

然后,当我键入“git diff”时,它不再显示^M字符,而是显示文件的每一行都已更改(即使是相同的行)

因此,我尝试强制转换回Windows样式的行尾,现在“git diff”在每一行后面显示^M,并将每一行显示为已更改

这是不好的,所以我回到了Unix风格的行结尾,并尝试了更多的事情,比如显式添加一个.gittributes text=auto行,删除索引和“git reset”。没什么不同

我不明白为什么Windows风格的行尾和Unix风格的行尾都会让git认为文件的每一行都经过编辑。看起来这两种情况中的一种应该有效


当文件设置为Unix风格的行结尾时,“git diff-w”准确地显示了更改的行,不多也不少。本质上,我想把它提交给git,这样我就可以回到某种合理的状态,而不会让git历史错误地显示我编辑了文件的每一行。我如何做到这一点?

这里的顶级解决方案对我有效:最简单的方法是设置
git config--global core.whitespace cr at eol
。这里的顶级解决方案对我有效:最简单的方法是设置
git config--global core.whitespace cr at eol