git diff时的^M显示异常
更麻烦的是,文件中充斥着 ^M 字符,导致真正的修改点被完全淹没,无法达到 git diff 应有的代码对比效果。当在不同系统间协作,或者文件被不同编辑器保存时,git 会检测到行结束符的变化,并在 diff 中将其显示为 ^M(\r 的显示形式)。配置git 在比较文件时,将行尾的回车符(CR, \r,显示为 ^M)视为正常的行结束符,而不将其标记为差异。Windows:使用 CRLF(\r\n
·
项目场景:
提示:git:

问题描述
提示:git diff:
当使用 git diff 时,我发现实际只修改了几行代码,但对比结果却显示整个文件都被标记为已更改。更麻烦的是,文件中充斥着 ^M 字符,导致真正的修改点被完全淹没,无法达到 git diff 应有的代码对比效果。
原因分析:
遇到的 ^M 问题是由 行结束符不一致 引起的:
Unix/Linux/macOS:使用 LF(\n)作为行结束符
Windows:使用 CRLF(\r\n)作为行结束符
老版本 Mac OS:使用 CR(\r)作为行结束符
当在不同系统间协作,或者文件被不同编辑器保存时,git 会检测到行结束符的变化,并在 diff 中将其显示为 ^M(\r 的显示形式)。
解决方案:
指令输入:
git config --global core.whitespace cr-at-eol
配置git 在比较文件时,将行尾的回车符(CR, \r,显示为 ^M)视为正常的行结束符,而不将其标记为差异。
更多推荐
所有评论(0)