git提交时,怎样避免报错:fatal: CRLF would be replaced by LF in file.js?

网上很多文章中都说,执行命令git config --global core.autocrlf true,或在.gitconfig文件中加入以下部分:

[core]
    autocrlf = true

就可以实现commit时Git自动地把文件中的换行符从CRLF转换成LF,而在checkout时再自动把换行符从LF转换成CRLF。

那为什么我在git commit时,却还是提示如下错误:

fatal: CRLF would be replaced by LF in file.js

而将autocrlf设为false就不会提示上述错误。

我的疑惑是,不是说autocrlf设为true后,git应该自动将把文件中的换行符从CRLF转换成LF,那这就不属于错误啊,干嘛还要报错?

顺便说一下,我用的IDE是phpstorm,会不会是IDE中的设置问题?

阅读 9.2k
4 个回答
  • git config 设置
  • phpstorm 设置

图片描述

  • 最佳解决姿势:弃用 windows 平台
新手上路,请多包涵

我的设置:

  1. git config autocrlf=false
  2. .gitattributes 文件中设置
    text=auto
    text eol=lf

也可以看 https://help.github.com/en/ar...

这实际也不是报错,只是git会根据你的系统来修改文件换行符

新手上路,请多包涵

在当前项目.git目录中编辑config文件
编辑config增加两行字段

[core]
  autocrlf = false
  safecrlf = false

保存后从新提交即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进