项目场景:

提示: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)视为正常的行结束符,而不将其标记为差异。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐