本文记录解决使用idea,phpstorm等开发工具在windows下提交代码后在linux下同样使用相同工具代码全部变为git修改状态如图。

1642814803

 通过上面的图片我们可以看到标记为修改状态的代码文件什么都没有修改但是因为跨平台出现了git修改状态,经过排查发现是 windowslinux 下换行转换的问题。

windows下默认idea换行符

 windows下默认换行符为 CRLF 格式
1642815010

linux下默认默认idea换行符

 windows下换行符为 LF 格式
1642815104

解决跨平台默认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自动变为修改状态的问题了。