换行符是 *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

标签: git