Git 处理换行符问题
换行符是 *nux 与 Windows 系及其他系的各种不兼容问题的代表之一,于是,在不同平台使用 Git 时经常碰到 git status 列出一大串修改过的文件,git diff 查看一下其实只是换行符问题。
方案1: 增加 .gitattribute 文件
在 repo 目录下新建 .gitattribute 文件,内容为:
* text eol=lf
方案2: 修改 Git 配置
# 签出时将换行符转换成CRLF,签入时转换回 LF。
git config --global core.autocrlf true
# 签出时不转换换行符,签入时转换回 LF
git config --global core.autocrlf input
# 签出签入均不转换
git config --global core.autocrlf false
如果只需要修改当前仓库,去掉 --global
。
安全设置
如果你把换行符搞乱了,在一个文件中既包含windows风格的换行符也包含unix风格换行符,那么 safecrlf 就可以发挥作用了:
# 拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
# 允许提交包含混合换行符的文件
git config --global core.safecrlf false
# 提交包含混合换行符的文件时候给出警示
git config --global core.safecrlf warn