window和mac的同学合作开发项目,会出现git提交/拉取时换行符不一致导致,提示 "the text is identical, but the files do not match, newlines”等字样,会出现很多文件发生更改,下面说说换行符引起的这个问题.
CRLF
Carriage-Return Line-Feed的缩写,回车换行的意思
- CR:Carriage Return,对应ASCII 13中转义字符\r,表示回车
- LF:Linefeed,对应ASCII 10中转义字符\n,表示换行
- CRLF:Carriage Return & Linefeed,\r\n,表示回车并换行
(ASCII码表里也有用newline, nl表示换行的)
据传说,CR、LF最原始的还要追踪到最早到机械打字机时代,
- CR回到同一行的纸张最左侧的意思,
- LF代表换一行,将纸张上一一行
两个组合可不就是换行.
windnow unix mac等平台换行符不同:
![](https://i-blog.csdnimg.cn/blog_migrate/c1fef91711e02840bd7e3bfb23aea65e.png)
可以通过git全局设置修改使用的换行符问题,来支持跨平台合作开发项目(window和mac):
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
![](https://i-blog.csdnimg.cn/blog_migrate/6a72ce57f2e4321c2628633700cf153b.png)
如果觉得文章不错,可以给小编发个红包给予鼓励.