记一次 GitHub 出现 ^M 符号的解决办法
1、参考资料
2、原因寻找
问题原因
-
在GitHub 仓库中文件出现 ^M 符号
-
使用 IDEA 打开却显示正常。。。
-
我丢雷老母,这一看肯定是换行符出了问题,原因是在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),但 DOS/Windows 一直使用 0x0D0A(CRLF) 作为换行符。
-
但是我们这个问题却有点奇怪,有些换行正常,有些换行不正常(变为 ^M 符号)
失败的尝试
好多博客都说需要开启 Git 的自动换行功能,执行 git config --global core.autocrlf true
命令之后,当检出文本文件时,Git 会将 LF 转换为 CRLF。当提交文本文件时,CRLF 将会被转换为 LF
上面这句话是不是在哪儿见过?在安装 Git 的时候,默认设置就是 core.autocrlf = true
,所以说不是这个问题
3、解决办法
-
那就是换行符不一致的问题。。。将文件用 Sublime Text 打开,选择【查看】–>【行尾】–>【Windows】,将换行符统一替换为 Windows 换行符,并保存文件
-
使用
git add
指令将文件添加至暂存区后,使用git status
指令查看文件状态,显示文件已经被修改,再次验证了我们的猜测 -
推送至远程库后,文件中已经没有了 ^M 符号,原来是 Copy 代码的时候,这段代码本身的换行符就有问题啊~~~