两个相关的设置:autocrlf和safecrlf
autocrlf
负责自动转换crlf。
可设置值含义:
- true(默认值):提交时转换为LF,检出时转换为CRLF
- input:提交时转换为LF,检出时不转换
- false:关闭转换
safecrlf
负责检查是否可以安全使用autocrlf功能(CRLF与LF混合等情况会出错)。
可设置值含义:
- true(默认值):拒绝提交包含混合换行符的文件
- warn:提交包含混合换行符的文件时给出警告
- false:关闭检查功能,即允许提交包含混合换行符的文件
查看与设置:autocrlf和safecrlf
这两个设置项属于配置(在config中),而配置分为全局配置和项目配置。
全局配置查看与设置:
git config --global core.autocrlf true # 设置为true
git config --global core.autocrlf # 查看
项目配置查看与设置:
- 命令行:
git config core.autocrlf true # 设置为true
git config core.autocrlf # 查看
- config文件
打开修改“项目目录/.git/config”。
一般的坑与解决
注:一般这两项都设置为true
- 文件中有混合的行尾符:将异常行尾符换成当前系统行尾符
- 文件中的行尾符都是异常行尾符:将异常行尾符换成当前系统行尾符
行尾符替换方法
编辑器:notepad++
- 显示行尾符:视图->显示符号->显示行尾符
- 字符替换法:Ctrl+R打开替换框,查找模式选择“扩展”或“正则表达式”。
window下的换行符为“\r\n”,Linux的换行符为“\n”
- 文档格式转换法(混合行可能需要转换两次):编辑->文档格式转换->转为Windows。(或者转为其他类型)
文件夹行尾符批量转换
编辑器:PHPStorm
步骤:
-
点击选中要转换的文件夹(或文件)
-
点击左上角工具栏:“文件”->“Line Separators”->选择你要转换成的类型(混合的行符时,一次转换无法完成,需先转换成其他类型,再转换回你想要的类型)
参考链接:
Git中的AutoCRLF与SafeCRLF换行符问题
IDE对整个项目文件,批量转换换行符(CRLF LF)