浅谈CR,LF和CRLF
以Pycharm为例: 点击CRLF,有三个可供选择: 其实注释得很明白: CR用于Mac下,作用相当于 \r LF用于Unix下,作用相当于 \n CRTF用于Windows下,作用相当于 \r\n 简单介绍下三者: CR:Carriage Return LF: Line Feed CRTF:Carriage Return Line Feed 其实这个根源于打印机时代,现代键盘由以前的打印机键盘演变而来,在打印机时代换行是通过xxxxxx 而这个传统延申到了现代,在Mac下,文本的换行体现在代码(ASCII)层面是\r,Unix下是\n,Windows下是\r\n。在协同工作时就可能出现问题,如三个人使用三个平台通过Git修改一份文件,如果不经过任何处理,则三个人每次提交的文件都和之前的文件冲突(假设最近一次修改不是自己)—— 换行符不一样。 为了解决这个问题,IDE提供了这样一个跨操作系统的自定义模式:自己设置换行方式。 回到之前的问题,现在三个人都约定好:我们将IDE的换行方式都设置为CRLF进行开发,这样提交git就不会冲突了。 但是,在实际开发中,这其实是不实用的,在终端跨平台去约定每个人的开发习惯不安全也不方便。所幸Git本身提供这样的功能:设置autocrlf属性,具体设置详见 关于CRLF的一些坑 ,一般而言,这个属性有三个值: true