在 Windows 机器上工作时使用 unix 行结尾有任何副作用吗?
Are there any side effects of having unix line endings when working on Windows machine?
我正在 Windows 7 工作,并且有一个 node.js 项目在 git 下。我将我的 TortoiseGit 设置为 autocrlf: false
和 safecrlf: 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
它会在本地使用你的源文件并且你可以偷偷 CRLF
s进入 npm 注册表。
我正在 Windows 7 工作,并且有一个 node.js 项目在 git 下。我将我的 TortoiseGit 设置为 autocrlf: false
和 safecrlf: 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
它会在本地使用你的源文件并且你可以偷偷 CRLF
s进入 npm 注册表。