我一直在和我的团队争论这个问题。在开发中,我们使用 Windows (CRLF),在服务器上我们使用 Linux (LF)。
如果 Linux 看到带有 CRLF 换行符的文件,是否有问题?Git 应该通过文件来处理这种情况吗.gitattributes?
大多数情况下,当您将文件上传到服务器时,Linux 内核本身并不知道或关心行结尾。尽管正如muru 所指出的那样,CRLF 会搞砸一个shebang。
然而,Linux 中有一个约定,文本文件中的所有行都以单个 LF 结尾。许多工具会读取 CR 并将其视为任何其他常规字符(a、b、c...)。这来自文本文件的 POSIX 定义。
这可能会导致某些语言出现问题,例如 shell 脚本(sh、bash、zsh、ksh...)。如果幸运的话,脚本将因虚假的额外参数引起的语法错误而失败。然而,在糟糕的情况下,这可能会渗透到文件的内容和文件名中。
对于仅设计用于在 linux / unix 下运行的工具和语言来说,这主要是一个问题。许多独立于平台的语言和工具会自动适应。因此,您不太可能在IDE或代码编辑器中看到问题。
因此,为了试图结束你与同事的争论,没有一个 Linux 不存在 CRLF 行结尾的问题。 然而,如果您将某些工具和语言留在其中,它们可能会令人窒息或发生奇怪的事情。
如果您正在编写要在 Linux / Unix 平台上运行的代码,那么通常更容易配置 git 来删除任何 CR 字符,留下 LF 行结尾。
| 归档时间: |
|
| 查看次数: |
2447 次 |
| 最近记录: |