Windows 下文本文件所使用的换行符是 CRLF,而 Linux/UNIX/macOS 用的是 LF。
使用 Git 的时候,默认当我们拉取远程文件的情况,会将 LF 格式的文件转换为 CRLF 格式的,在推送到远程时会进行一次转换将其变为 LF 格式推送上传。但这会在跨平台开发的时候造成一些问题,比如会影响正常 diff 的结果导致无法使用。
解决方法
在 Git 的工程根目录下增加.gitattributes文件。
在其中增加* text=auto eol=lf一行。这能保证 Windows 协作者在拉取时文件不会被转成 CRLF 格式。
我这个工程的 .gitattributes 文件内容如下:
* text=auto eol=lf
# Files with UNIX line endings
*.py text eol=lf
*.js text eol=lf
*.jsx text eol=lf
*.json text eol=lf
*.sh text eol=lf
# Binary files
*.bin binary
PyCharm 的设置
现代的 IDE 或文本编辑器对于换行符都已经有了很好的支持。
设置在 File - Settings - Editor - Code Style下
Scheme选择Project即代表该设置只对本项目工程生效。
General - Line separator选择UNIX and macOS (\n)
参考链接: