我创建了一个 Node.js 模块,很快就会开源。我最初在 Linux 上开发它,并决定在发布之前在 Windows 上测试它。当我在 Windows 上运行 ESLint 时,我注意到有大量相同的 linting 错误:
error Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style
我在几个地方读到,当我在 Windows 上克隆存储库时,这些换行符是由 Git 插入的。我还了解到可以在 eslint 配置文件中关闭此规则。这样做安全吗?或者是否有关于此规则的“最佳实践”? (考虑到这将是一个开源项目,希望其他人能够为其做出贡献)
如有任何建议或反馈,我们将不胜感激。
输入后尝试重新克隆您的存储库:
git config --global core.autocrlf false
这应该避免 Git 在结帐时自动将您的 eol(行尾)从 LF 转换为 CRLF。
然后你的 linter 应该找到预期的 eol。
注意:多年来我一直主张默认情况下该设置为 false:请参阅“Git:Unix 或 DOS 行终止”。
重新克隆存储库的替代方法是:
git rm -rf --cached .
+ git reset --hard HEAD
GitHub 在“更改行结尾后刷新存储库” 中描述
或者更好的是,使用 Git 2.16+ (Q1 2018) 和
git add --renormalize
对所有跟踪的文件重新应用“清理”过程,以强制将它们再次添加到索引中。
在更改配置或文本属性以更正添加了错误 CRLF/LF 行结尾的文件后,这非常有用。core.autocrlf
此选项意味着。-u
单独的 CR 字符不受影响,因此当 CRLF 清理为 LF 时,CRCLRF 序列仅部分清理为 CRLF。