本文记录解决使用idea,phpstorm等开发工具在windows下提交代码后在linux下同样使用相同工具代码全部变为git修改状态如图。
通过上面的图片我们可以看到标记为修改状态的代码文件什么都没有修改但是因为跨平台出现了git修改状态,经过排查发现是 windows 和 linux 下换行转换的问题。
windows下默认idea换行符
windows下默认换行符为 CRLF 格式
linux下默认默认idea换行符
windows下换行符为 LF 格式
解决跨平台默认idea换行符问题
既然我们找到了问题那么就好解决了我们只需要配置下git拉去或者提交代码时候保持原样或者指定格式即可。
提交时转换为 LF 检出时转换为 CRLF (推荐windows)
git config --global core.autocrlf true
提交时转换为 LF 检出时不转换(推荐unix/mac)
git config --global core.autocrlf input
提交检出均不转换换行符
git config --global core.autocrlf false
拒绝提交包含混合换行符的代码文件
git config --global core.safecrlf true
允许提交包含混合换行符的代码文件
git config --global core.safecrlf false
提交包含混合换行符的代码文件时给出警告提示
git config --global core.safecrlf warn
根据相对应的需求通过命令行执行以上指定命令我们就解决使用idea,phpstorm等开发工具在win提交代码linux下git自动变为修改状态的问题了。