在 Windows 机器上工作时使用 unix 行结尾有任何副作用吗?

Are there any side effects of having unix line endings when working on Windows machine?

我正在 Windows 7 工作,并且有一个 node.js 项目在 git 下。我将我的 TortoiseGit 设置为 autocrlf: falsesafecrlf: false。然后将所有项目文件的行尾更改为 LF。项目正常启动和运行,我认为没有理由返回 CRLF。

这样做后我应该期待任何副作用吗?

如果tools/editors/IDEs都兼容LF,那就没问题了。

否则您可能会在保存时遇到错误或混合行结尾。

为了确保克隆您的存储库的其他用户不会发生任何转换,您可以将 .gitattributes 文件放入包含以下内容的根文件夹中:* -crlf 这将禁用所有 crlf 转换。

不,在 Windows 上使用 *nix 行尾序列完全没有问题(LF 而不是 CRLF)。事实上,我个人的建议是确保您的 Windows 编辑器(如果您在 Windows 上开发 node.js)使用 LF.

举个例子,我的编辑器开发 node.js 使用 Visual Studio Code,并且我在用户设置中指定了以下内容以使用 LF 而不是 CRLF"files.eol": "\n"。现在我再也不用担心了。

CRLF 行结束会导致 node.js 应用程序出现中断问题,即 运行 on Linux 和 it isn't the most straightforward thing to troubleshoot if you don't know what to look for.

TL;DR 如果您真的关心跨平台(您应该关心)。

注意:仅仅因为 git 改变了你的行尾并不意味着这就是解决方案。即使你同意你的版本控制改变你的源代码(我不推荐),如果你做一个 npm publish 它会在本地使用你的源文件并且你可以偷偷 CRLFs进入 npm 注册表。