默认的换行符在各操作系统下是不一致的,Windows 是 CRLF(’\r\n’),Mac、Linux是 LF(’\n’)。

在一些项目中,会严格限制换行符,比如在项目根目录下 .editorconfig 中设置 end_of_line = lf,当你在 Mac 下开发之后,在 Windows 上 clone 代码时, git 会自动将换行变更为系统默认的换行(’\r\n’),而且还是项目级别的。

原因

git 会依据平台自动变更文件换行符,这是项目级别的。

解决办法

配置 git

# windows 下是 autocrlf

#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

#提交时转换为LF,检出时不转换
git config --global core.autocrlf input

# 推荐,项目中指定了换行,则在任何平台都只用一种换行 \n
#提交检出均不转换
git config --global core.autocrlf false

SafeCRLF

#推荐,拒绝提交包含混合换行符的文件
git config --global core.safecrlf true

#允许提交包含混合换行符的文件
git config --global core.safecrlf false

#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

IDE 设置换行

Webstorm 中,File -> Settings -> Editor -> Code Style -> Line separator -> Unix and macOS


关注公众号 止水聊技术,即送技术资料,您的支持是我最大的动力
lxfriday_xyz

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐