#杂七杂八常识 ![[Pasted image 20230612175814.png]] 首先普及下基本知识: CRLF是Carriage-Return Line-Feed的缩写,意思是回车换行,就是回车(CR, ASCII 13, \r) 换行(LF, ASCII 10, \n)。换行在有的ASCII码表也用newline(简nl)来进行表示,这里的lf是line feed的概念,意思是一样的 CRLF ---------- '\n\r' 回车换行 CR ---------- '\n' 回车 LF ---------- '\r' 换行 window unix mac 等平台,换行符的不同: 系统 换行符 windows \n\r unix \n mac \r 假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾结束符问题。这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。虽然这是小问题,但它会极大地扰乱跨平台协作。 Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF,有以下几种方案: ``` 1. 在安装“Git for windows”的时候,在“Configuing the line ending conversions”页面,将默认选中改为“Checkout as-is, commit as-is” 2. 如果已经安装过了,也可以通过命令行修改,打开“Git Bash”,然后输入 $ git config --global core.autocrlf input 3.也可以在“Git Bash”中修改~/.gitconfig文件,加入或修改 [core] autocrlf = input 4.如果使用TortoiseGit,可以在setting的Git配置中选择Global模式,取消选中“AutoCrlf”,然后保存配置 ``` ``` shell 1> AutoCRLF #提交时转换为LF,检出时转换为CRLF git config --global core.autocrlf true #提交时转换为LF,检出时不转换 git config --global core.autocrlf input #提交检出均不转换 git config --global core.autocrlf false 2>SafeCRLF #拒绝提交包含混合换行符的文件 git config --global core.safecrlf true #允许提交包含混合换行符的文件 git config --global core.safecrlf false #提交包含混合换行符的文件时给出警告 git config --global core.safecrlf warn ``` 测试在config文件写入这字段好使 ``` shell [core] autocrlf = false ```