【问题标题】:Are there any side effects of having unix line endings when working on Windows machine?在 Windows 机器上工作时有 unix 行尾的副作用吗?
【发布时间】:2016-09-05 19:44:33
【问题描述】:

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

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

【问题讨论】:

  • 这算不上一个正确的答案,但不,你不应该期待太多的问题。唯一让人头疼的程序是notepad.exe——它将带有 Unix 行分隔符的文件显示为一条巨大的行。

标签: node.js git newline tortoisegit core.autocrlf


【解决方案1】:

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

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

CRLF 行尾会导致在 Linux 上运行的 node.js 应用程序出现中断问题,而it isn't the most straightforward thing to troubleshoot if you don't know what to look for

TL;DR 如果您真的关心跨平台(您应该关心),请在 Windows 上开发 node.js 应用程序时使用 LF

注意:仅仅因为 git 改变了你的行尾并不意味着这就是解决方案。即使您对更改源代码的版本控制没问题(我不建议这样做),如果您执行npm publish,它将在本地使用您的源文件,您可以将CRLFs 偷偷溜进 npm 注册表.

【讨论】:

    【解决方案2】:

    如果所有工具/编辑器/IDE 都兼容 LF,那么就没有问题。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多